我在写代码的时候遇见这个问题,代码如下:function test(){ }test.prototype.name = function(){ console.log("test_prototype");}(function(){ console.log("立即执行函数");})()请问,为什么连带test的prototype一起执行了?希望大神指点下。多谢。
1 回答
慕莱坞森
TA贡献1810条经验 获得超4个赞
加分号啊。老生常谈了。
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)()
添加回答
举报
0/150
提交
取消