Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何编写一个好的即时执行函数?_Javascript - Fatal编程技术网

Javascript 如何编写一个好的即时执行函数?

Javascript 如何编写一个好的即时执行函数?,javascript,Javascript,1.在我的代码中经常出现 (function(){})(); 2.经常阅读 (function(){}.call(this)); 有很多工作做得很好。哪一个更好?为什么?通常,生活总是与全球环境相联系的。在第二个代码段中,它绑定到call的第一个参数提供的上下文。比如不打电话 var a=20, obj={a:10}; (function(){console.log(this.a)})(这取决于您的用例。如果第一个适合您,请使用第一个。它与函数中的不同。没有“更好”,这取决于你想要什么。调

1.在我的代码中经常出现

(function(){})();
2.经常阅读

(function(){}.call(this));

有很多工作做得很好。哪一个更好?为什么?

通常,生活总是与全球环境相联系的。在第二个代码段中,它绑定到call的第一个参数提供的上下文。比如不打电话

var a=20,
obj={a:10};

(function(){console.log(this.a)})(
这取决于您的用例。如果第一个适合您,请使用第一个。它与函数中的
不同。没有“更好”,这取决于你想要什么。调用(this)将上下文传递给函数。在函数体中,您将能够访问此函数的字段。Otherwize在函数体中为空。我们不知道为什么此代码段的作者特别决定使用
。调用(this)
。事实是:如果没有
.call(this)
函数中
this
的值将是未定义的/全局的,而如果没有
.call(this)
它就是
this
中的任何值。时期不多不少。@Carson
.call(this)
根据IIFE的调用时间而定。检查我答案中的第三和第四个片段。但在我的例子中,生活总是与全球环境相联系的。