var foo02 = new function()
{
var temp = 100;
this.temp = 200;
return temp + this.temp;
}
var foo3 = new Function('var temp = 100; this.temp = 200; return temp + this.temp;');
其实这:function(){}就是一个对象,给的例子Funciotn()也是作为
/*下面这个函数其实就是Function的对象,它跟:
var Function = new Function(); 是等价的,它又将作为window的属性存在着
*/
它的一个对象存在着(你知道,JavaScript中对象也可以有自己的对象属性)。这样看他们都是一样-是一个对象。
为什么很多地方都使用你说的那种形式来写JavaScript的代码呢?
因为在JavaScript中代码的效率非常重要,一个函数对象在被执行完了之后,系统就会将它销毁,但是如果是一个全局属性的话,只有等到整个窗口被销毁的时候这些属性才会被销毁。像我上面那样的写法,Fucntion()函数在被执行完之后会被系统立马销毁掉,但是函数
function (){
//function content
}
还会作为一个全局的属性(前提是我们将它定义成全局)直到窗口销毁它才会被销毁,但是我们后面不会再调用它了。这样,如果有很有这样的属性或者是函数的话,会白白的浪费很多的系统资源。(function(){})();这种写法就很合理了,这个函数执行完之后立马就被销毁掉,节省了系统的开销。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。