我看到了一些javaScript,比如Backbone-relational这样写的:
( function( undefined ) {
"use strict";
// some code
})();
我的问题是:什么时候应该使用未定义的参数? 总是或在特殊情况下?
答案 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'可以像任何其他变量一样设置一个值。