// a self-invoking anonymous function
(function() {})();
是否与以下内容相同?.call()自调用匿名函数,
// as in underscore.js (underscorejs.org)
(function() {}).call(this);
// a self-invoking anonymous function
(function() {})();
是否与以下内容相同?.call()自调用匿名函数,
// as in underscore.js (underscorejs.org)
(function() {}).call(this);
不,第二个会将函数的调用上下文设置为与外部上下文相同的值。
第一个可能有也可能不具有相同的上下文,具体取决于此代码的运行位置以及代码是否以严格模式运行。
严格模式会有什么不同?只是想知道 – Ian
@ianpgall:当你严格的时候,函数的默认'this'值是'undefined'而不是'window'。另外,如果你为'this'设置一个原始值,它不会将它转换为它的对象包装器。 –
他们不是,但这一切都取决于你是否在函数内引用'this'。 –