Todd在his article中提到可以指定未定义的值(作为将对象放入参数而不指定它的理由):
在ECMAScript 3中,undefined是可变的。这意味着它的价值可能是 重新分配,像undefined = true;比如,哦,我的! 值得庆幸的是ECMAScript 5严格模式('use strict';)解析器会 扔错误告诉你,你是个白痴。在此之前,我们开始了 通过这样做来保护我们的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 :(得分:1)
作为答案:
(function(undefined){
console.log("\"undefined\" parameter:", undefined);
})("test");
它会起作用。