这是什么样的设计模式,使用这个闭包有什么意义?
(function(){
// my code here
}).call(this);
然后上面的代码和以下代码有什么区别,因为this
关键字在这两种方式中仍然会引用同一个对象。
(function(){
// my code here
})();
答案 0 :(得分:7)
这是一个立即调用的函数表达式。
此处有更多信息:http://benalman.com/news/2010/11/immediately-invoked-function-expression/
目的是在保护范围的同时立即运行代码(因此声明的变量不会泄漏到全局范围。
call
为其应用的函数设置this
的值。如果没有它,则将值设置为窗口对象,并将其设置为外部范围。