版权声明:本文为博主原屙文章,喜欢你就担走。 https://blog.csdn.net/leftfist/article/details/81949686
有意思,看代码:
1、写法一
var j1 = (function (){
return {name:'zhang3'};
})();
2、写法二
var j2 = function (){
return {name:'li4'};
}();
//注意直接这样写不会运行:
function (){
return {name:'li4'};
}();
//一定要在赋值语句才会运行,但写法一可以!
//但是在外层加个括号又可以,我快崩溃了!真是又爱又恨!
(function (){
return {name:'li4'};
}());
3、写法三
var j3 = new function (){
return {name:'wang5'};
};
alert(j1.name + "," + j2.name + "," + j3.name);//显示zhang3,li4,wang5
可见
1、(function(){})()
2、(function(){}())
3、new function(){}
基本是等价的,都是运行一个函数。可能new的功能更强一些,除了运行函数,还获得了这个函数实例。