误解了jQuery的"未定义"技巧?

Roy*_*mir 0 javascript jquery

jQuery使用这个简单的技巧模式:

(function( $ , window,undefined ) {

alert(window.aaa===undefined); //true

}(jQuery,window))
Run Code Online (Sandbox Code Playgroud)

但是,据我所知,这是因为一个愚蠢的人可能会这样做:

undefined="lalala"
Run Code Online (Sandbox Code Playgroud)

然后这应该失败:

(function( $ , window ) {

alert(window.aaa===undefined);

}(jQuery,window))
Run Code Online (Sandbox Code Playgroud)

但事实并非如此.(它警告真实)

我错过了什么?

Doo*_*nob 8

这是因为现代浏览器(如Google Chrome)可以防止设置以下值undefined:

图片

这是在ES5中引入的:

undefined 根据ECMAScript 5规范,它是不可写的.

来源:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/undefined