2011-09-24 68 views
2

我常常看到這樣的描述爲保證的jQuery插件的安全環境的方式:我是否還應該確保在jQuery插件封閉中未定義?

(function($){ 
    $.fn.myPlugin = function() { 
    ... 
    }; 
})(jQuery); 

那豈不是更好地維護也是不確定的,就像這樣:

(function($, undefined){ 
    $.fn.myPlugin = function() { 
    ... 
    }; 
})(jQuery); 

或根本這沒關係?如果是這樣,爲什麼?

+1

你是什麼意思「保障未定義」? – Jay

+1

它甚至可以重新定義未定義? – JohnD

+1

@JohnD:是的。 'undefined'實際上是全局對象的一個​​屬性(即'window.undefined')(默認情況下* value *'undefined')。 –

回答

1

可能沒有必要。如果測試變量是否爲undefined,你應該更喜歡使用

typeof variable === 'undefined' 

反正。

另一方面,「保護」jQuery是您絕對應該做的事情,否則如果在noConflict模式下使用jQuery,您的插件將無法工作。

相關問題