我看到了一些 javaScript,比如Backbone-relational是这样写的:
( function( undefined ) {
"use strict";
// some code
})();
我的问题是:什么时候应该使用未定义的参数?总是或在特殊情况下?
我看到了一些 javaScript,比如Backbone-relational是这样写的:
( function( undefined ) {
"use strict";
// some code
})();
我的问题是:什么时候应该使用未定义的参数?总是或在特殊情况下?
在 Javascript 中,undefined
不是一个特殊的关键字。它是一个常规的全局变量。
如果undefined
被外部代码更改,可能会导致奇怪的错误。有些人在他们的函数声明中声明了一个未使用的参数,undefined
因此该函数将有一个undefined
使用已知值调用的变量undefined
。
var undefined
在函数体中做同样的事情,但需要更多的字节。
大多数时候,当您看到该模式时,他们会确保“未定义”是真正未定义的。看看他们如何在底部不传递任何参数。
这是一个自执行函数,您可以将参数传递给它。
(function(undefined) { // no parameters are passed in so undefined is undefined. "use strict"; })(/*no parameters passed*/)
如果您的代码正在使用 undefined 并且您需要确保其他一些 javascript 库不会改变 undefined 的含义,那么您将需要使用此模式。然而,这并不是经常发生的事情,它只是一个安全网。由于某种原因,javascript 'undefined' 可以像任何其他变量一样设置一个值。