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

Bet*_*ide 10 javascript function

这个帖子中,我找到了一个我想要使用的JavaScript代码片段.

代码如下:

(function(global) {
  // the function code comes here
})(this);
Run Code Online (Sandbox Code Playgroud)

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

JAA*_*lde 19

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

它是一个函数文字定义,后跟两个parens,导致该函数立即调用.阅读更多:立即调用函数表达式(IIFE)

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

  • 谢谢.博客文章是非常有帮助的! (2认同)

Jon*_*Jon 16

此构造定义了一个函数:

function(global) {
  // the function code comes here
}
Run Code Online (Sandbox Code Playgroud)

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

([function])(this)
Run Code Online (Sandbox Code Playgroud)

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

console.log(this); // outputs something
(function(global) {
    console.log(global); // outputs the same thing as above
})(this);
Run Code Online (Sandbox Code Playgroud)