Javascript库中名为undefined的变量

Pra*_*sad 8 javascript jquery

可能的重复:
这个JavaScript/JQuery语法如何工作:( function(window,undefined){})(window)?
使用(函数(窗口,文档,未定义){...})(窗口,文档)赋予什么优势?

我见过很多javascript库创建一个名为"undefined"的变量,iam无法弄清楚它的用途,下面是从jQuery库复制的行

 * Date: Wed Feb 23 13:55:29 2011 -0500
 */
(function( window, undefined ) {

// Use the correct document accordingly with window argument (sandbox)
var document = window.document;
var jQuery = (function() {
Run Code Online (Sandbox Code Playgroud)

请告诉我这样做的原因和好处!!

lon*_*day 7

你会看到的是这样的:

(function(undefined) {
    /* lots of code */
}());
Run Code Online (Sandbox Code Playgroud)

这将创建一个匿名函数并立即执行它.该函数有一个名为的参数undefined.由于没有传递给函数的参数,因此该变量undefined实际上是Javascript 原始值undefined.

那么你为什么要这样做呢?好吧,问题是你可以用名称创建一个变量并将其undefined设置为你喜欢的任何变量,例如:

var undefined = 'some text';
Run Code Online (Sandbox Code Playgroud)

myvalue === undefined然后,代码中的测试会产生意外结果.

具有参数的匿名函数undefined实质上称为"重置" undefined原始值的值,以便您可以根据需要进行检查,而不必担心它是否具有正确的值.


Lok*_*tar 6

它确实undefined是确实的undefined.Paul Irish称之为混蛋效果,页面上包含的其他js可能会改变undefined的含义,然后你会得到意想不到的结果.


归档时间:

查看次数:

711 次

最近记录:

11 年,7 月 前