underscore.js IIFE语法有效吗?

时间:2015-02-24 12:49:00

标签: javascript syntax underscore.js

我刚刚看了underscore.js source code,当我将源代码剥离到包含IIFE的裸代码时,它看起来像这样:

(function() {

}.call(this));

我总是使用外部parantheses (function() {}).call(this);的语法,并想知道这种语法是否也有效且常见?

1 个答案:

答案 0 :(得分:2)

如果你具体询问外)的位置,那么它是在紧接括号之后还是在整个表达式doesn't matter for the most part之后。无论哪种方式都不会对IIFE的执行方式产生影响。

这里唯一的区别是.call(this),它作为函数表达式的一个成员被调用 - 典型的IIFE只有紧跟在右括号之后的内括号。使用.call(this)的原因详见其他一些答案,包括this one