Мне любопытно, почему это работает:
var c = {
d: function myFunc() {
console.log(this === window);
}
};
var a = {
b: function() {
console.log(this === a);
(0,c.d)();
c.d();
}
};
a.b();
Выход консоли:
True
True
False
Итак, похоже, что (0, c.d)()
совпадает с c.d.call(window)
, но я не могу найти много причин о том, почему и как это работает. Может кто-нибудь объяснить?
От: Проблемы компилятора Closure
Fiddle: http://jsfiddle.net/wPWb4/2/