我看到一些JavaScript,像Backbone-relational這樣寫的:是在參數功能中未定義。何時應該使用它?
(function(undefined) {
"use strict";
// some code
})();
我的問題:什麼時候應該未定義參數一起使用? 總是或在特殊情況下?
我看到一些JavaScript,像Backbone-relational這樣寫的:是在參數功能中未定義。何時應該使用它?
(function(undefined) {
"use strict";
// some code
})();
我的問題:什麼時候應該未定義參數一起使用? 總是或在特殊情況下?
大多數情況下,當您看到該模式時,他們確保'未定義'確實是未定義的。看看他們在底部如何不通過任何論點。
這是一個自動執行功能,您可以傳遞參數給它。
(function(undefined) { // no parameters are passed in so undefined is undefined. "use strict"; })(/*no parameters passed*/)
如果您的代碼使用不確定的,你需要確保一些其他的JavaScript庫不會改變的不確定的含義,那麼你可能需要使用這種模式。然而,這不是一般的情況,它只是一個安全網。由於某種原因,在javascript'undefined'中可以像設置其他變量一樣設置一個值。
在Javascript中,undefined
不是一個特殊關鍵字。這是一個常規的全球變量。
如果undefined
被外部代碼改變,它可能會導致奇怪的錯誤。有些人在其undefined
的函數聲明中聲明瞭一個未使用的參數,因此該函數將具有一個名爲undefined
的變量,其已知值爲undefined
。
var undefined
在函數體中做同樣的事情,但需要多一些字節。
感謝您的回答。無論如何,我的問題是應該總是使用未定義的參數。如果不是當? –
每當你擔心有人可能用'undefined.'取代它,這取決於你是否完全控制了你的代碼,或者你的代碼是否與可能破壞/敵對的代碼混合並匹配。 –
感謝您的回答。無論如何,我的問題是應該總是使用未定義的參數。如果不是當? –
@LorraineBernard - 取決於你是多麼偏執。在我的網站上,我不使用隨機的第三方代碼,我使用的一些庫的表現非常好,所以我不使用這種模式。如果您正在編寫可能包含在不受您控制的隨機頁面中的JS的snippits,那麼您可能需要更高級別的編碼偏執狂。 –