立即执行函数为什么会影响构造函数的原型链

我在写代码的时候遇见这个问题,代码如下:


function test(){

    

}

test.prototype.name = function(){

    console.log("test_prototype");

}

(function(){

    console.log("立即执行函数");

})()



请问,为什么连带test的prototype一起执行了?

希望大神指点下。多谢。


慕侠2389804
浏览 369回答 1
1回答

慕莱坞森

加分号啊。老生常谈了。function test(){    }test.prototype = function(){    console.log("test_prototype");}; //这里加分号,否则就连成一条语句执行了(function(){    console.log("立即执行函数");})()// 不加分号,浏览器就是这样认为的:test.prototype = (function(){    console.log("test_prototype");})(function(){    console.log("立即执行函数");})()// 也就是这样的:f1 = function(){    console.log("test_prototype");};f2 = function(){    console.log("立即执行函数");};test.prototype = f1(f2)()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript