这个代码在Javascript中有什么设计模式?

时间:2013-07-10 19:36:09

标签: javascript

这是什么样的设计模式,使用这个闭包有什么意义?

(function(){
    // my code here
}).call(this); 

修改

然后上面的代码和以下代码有什么区别,因为this关键字在这两种方式中仍然会引用同一个对象。

(function(){
    // my code here
})(); 

1 个答案:

答案 0 :(得分:7)

这是一个立即调用的函数表达式。

此处有更多信息:http://benalman.com/news/2010/11/immediately-invoked-function-expression/

目的是在保护范围的同时立即运行代码(因此声明的变量不会泄漏到全局范围。

更新

call为其应用的函数设置this的值。如果没有它,则将值设置为窗口对象,并将其设置为外部范围。