2

我看到了一些 javaScript,比如Backbone-relational是这样写的:

( function( undefined ) {
    "use strict";
        // some code
})();

我的问题是:什么时候应该使用未定义的参数?总是或在特殊情况下?

4

2 回答 2

2

在 Javascript 中,undefined不是一个特殊的关键字。它是一个常规的全局变量。

如果undefined被外部代码更改,可能会导致奇怪的错误。有些人在他们的函数声明中声明了一个未使用的参数,undefined因此该函数将有一个undefined使用已知值调用的变量undefined

var undefined在函数体中做同样的事情,但需要更多的字节。

于 2012-09-18T13:47:40.773 回答
1

大多数时候,当您看到该模式时,他们会确保“未定义”是真正未定义的。看看他们如何在底部不传递任何参数。

这是一个自执行函数,您可以将参数传递给它。

(function(undefined) {  // no parameters are passed in so undefined is undefined.
 "use strict";

})(/*no parameters passed*/)

如果您的代码正在使用 undefined 并且您需要确保其他一些 javascript 库不会改变 undefined 的含义,那么您将需要使用此模式。然而,这并不是经常发生的事情,它只是一个安全网。由于某种原因,javascript 'undefined' 可以像任何其他变量一样设置一个值。

于 2012-09-18T13:46:01.510 回答