javascript – 用(function(){…})包装文件.调用(this)与简单调用()

前端之家收集整理的这篇文章主要介绍了javascript – 用(function(){…})包装文件.调用(this)与简单调用()前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Reason behind this self invoking anonymous function variant5个
backbone.js源代码使用这样的函数包装器:
(function(){
    ...
}).call(this);

见于http://backbonejs.org/docs/backbone.html#section-185.

更常见的是,我已经看到使用以下内容

(function(){
    ...
})();

这两者的行为何时不同?我的印象是它们是等价的,但我认为必须有区别,因为Backbone使用.call(this)而不是更短的替代品.

解决方法

在第一个例子中,函数内部将来自调用范围.

在第二个例子中,这将是窗口.

(正如ŠimeVidas所说,它在严格模式下是未定义的,而不是窗口.)

猜你在找的JavaScript相关文章