2016-01-20 39 views
0

託德:如何分配值在<a href="https://toddmotto.com/what-function-window-document-undefined-iife-really-means/" rel="nofollow">his article</a>提到,可以分配undefined值(以此爲理由把對象帶入參數,無需進行指定)未定義

在ECMAScript中3,不確定的是可變的。這意味着它的值可能是 重新分配,如undefined = true;例如,哦,我的! 謝謝ECMAScript 5嚴格模式('使用嚴格';)解析器將 拋出一個錯誤,告訴你你是個白癡。在此之前,我們就開始 保護我們IIFE的做這個:

(function (window, document, undefined) { 

})(window, document); 

這意味着,如果有人走過來這樣做,我們會好起來的:

undefined = true; 
(function (window, document, undefined) { 
    // undefined is a local undefined variable 
})(window, document); 

然而,我試圖給它沒有任何運氣:

$ undefined = true 
$ true 
$ undefined 
$ undefined 

任何人都可以說如何做到這一點?只是出於好奇。或者新的瀏覽器不再允許這個?

+0

爲什麼你想要,似乎是一個可怕的浪費時間和精力? :/ – ann0nC0d3r

+0

我發現爲'undefined'賦值的唯一方法是使用閉包'(function(undefined){console.log(「\」Undefined \「parametter:」,undefined);})(「test」)'函數內部的undefined變量將包含字符串'test'。 – Filipe

+0

@菲利普哈!真的行!謝了哥們! – nik

回答

1

把作爲一個答案:

(function(undefined){ 

    console.log("\"undefined\" parameter:", undefined); 

})("test"); 

它將工作。

相關問題