Jon*_* M. 8 javascript scope namespaces
是否有区别:
(function(){
}).call(this);
Run Code Online (Sandbox Code Playgroud)
和
(function(){
})();
Run Code Online (Sandbox Code Playgroud)
要么
var MODULE = {};
(function(){
this.hello = 'world'
}).call(MODULE);
Run Code Online (Sandbox Code Playgroud)
和
var MODULE = {};
(function(m){
m.hello = 'world'
})(MODULE);
Run Code Online (Sandbox Code Playgroud)
我经常在编译的javascript中看到第一个案例.他们都会创建一个范围并做好他们的命名工作.
有什么区别或只是品味问题.
编辑:为什么编译的JavaScript将使用IIFE调用?
(function(){
}).call(this);
Run Code Online (Sandbox Code Playgroud)
调用匿名函数,其中函数this内部将指向this调用时引用的对象.
(function(){
})();
Run Code Online (Sandbox Code Playgroud)
调用匿名函数,其中函数this内部将指向全局对象(或在严格模式下未定义)
演示:小提琴