如何使用(function(global){...})(this);

时间:2012-04-25 11:43:52

标签: javascript function

this thread中,我找到了一个我想要使用的JavaScript代码段。

代码如下:

(function(global) {
  // the function code comes here
})(this);

如何调用此函数来执行代码?我需要传递哪个global变量?

3 个答案:

答案 0 :(得分:19)

该函数立即执行,您不通过调用它来执行它。

它是一个函数文字定义,后跟两个parens,导致该函数立即调用。阅读更多:Immediately-Invoked Function Expression (IIFE)

无论你在里面放置什么代码,都可以立即运行。放置在调用parens中的任何内容都将作为参数传递给函数。假设您的示例代码是在全局范围内定义的,thiswindow对象,并在函数体中被引用为global。这是一种封装程序以避免变量冲突,强制严格模式等的好方法。

答案 1 :(得分:16)

此构造定义了一个函数:

function(global) {
  // the function code comes here
}

并立即调用它,将this作为参数传递:

([function])(this)

标识符global只是函数体内该参数的名称。例如,尝试

console.log(this); // outputs something
(function(global) {
    console.log(global); // outputs the same thing as above
})(this);

答案 2 :(得分:1)

  

如何调用此函数来执行代码?

它已被调用:(this)

  

我需要传递哪个全局变量?

this