参数功能中未定义。什么时候应该使用?

时间:2012-09-18 13:43:30

标签: javascript

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

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

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

2 个答案:

答案 0 :(得分:2)

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

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

函数体中的

var undefined执行相同的操作,但需要更多的字节。

答案 1 :(得分:1)

大多数情况下,当您看到该模式时,他们确保'undefined'确实未定义。看看它们如何在底部没有传递任何参数。

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

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

})(/*no parameters passed*/)

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