3
在這個片段請看:的Javascript:obj.fn()與X = obj.fn; X()
var obj = {
fn: function() {return this;}
};
var x = obj.fn;
obj.fn(); // returns obj
x(); // returns window (in the browser)
我很好奇,爲什麼obj.fn()
是x=obj.fn; x()
不同。在單個表達式中是否有特殊情況下的屬性查找直接跟隨函數調用 - 或者有一些更復雜的魔法發生在引擎蓋下(如Python中的descriptor protocol)?
相關ES5規範部分:http://ecma262-5.com/ELS5_HTML.htm#Section_11.2.3 – 2012-02-01 17:35:26
@Tim Down:謝謝,我還沒有找到我自己。不幸的是,該規範的可讀性是.. ekhm ..可疑的質量:)無論如何,這是一個遺憾的是,財產查詢和呼叫運營商的組合提供了不同的結果,而不是單獨使用它們。 – 2012-02-01 19:24:00