在this thread中,我找到了一个我想要使用的JavaScript代码段。
代码如下:
(function(global) {
// the function code comes here
})(this);
如何调用此函数来执行代码?我需要传递哪个global
变量?
答案 0 :(得分:19)
该函数立即执行,您不通过调用它来执行它。
它是一个函数文字定义,后跟两个parens,导致该函数立即调用。阅读更多:Immediately-Invoked Function Expression (IIFE)
无论你在里面放置什么代码,都可以立即运行。放置在调用parens中的任何内容都将作为参数传递给函数。假设您的示例代码是在全局范围内定义的,this
是window
对象,并在函数体中被引用为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