是否有差異之間:差異,並呼籲
(function(){
}).call(this);
和
(function(){
})();
或
var MODULE = {};
(function(){
this.hello = 'world'
}).call(MODULE);
和
var MODULE = {};
(function(m){
m.hello = 'world'
})(MODULE);
我經常在編譯的javascript中看到第一個案例。他們都會創建一個範圍並且很好地完成他們的命名空間。
有什麼不同或者是它只是一個品味的問題。
編輯:爲什麼會編譯的JavaScript就可以使用call在IIFE?
你是什麼意思「編譯的JavaScript」是什麼意思? –
像coffescript,或合金鈦 –
那就真的取決於'this'是在調用點;在大多數情況下,不會有區別,因爲所有代碼都被它包裝。 –