3
我正在查看Rebound javascript code,看到SpringSystem
函數正在被一個空對象擴展。爲什麼用一個空對象擴展一個函數?
var SpringSystem = rebound.SpringSystem = function SpringSystem() {
this._springRegistry = {};
this._activeSprings = [];
this._listeners = [];
this._idleSpringIndices = [];
this._boundFrameCallback = bind(this._frameCallback, this);
};
extend(SpringSystem, {});
凡extend
樣子:
function extend(target, source) {
for (var key in source) {
if (source.hasOwnProperty(key)) {
target[key] = source[key];
}
}
}
是什麼第一extend
通過擴展一個空對象實現的呢?這是我的理解,一個空對象沒有任何東西hasOwnProperty(key)
。
我錯過了什麼?
我的答案是這個函數的目的是通過複製javascript的'proto'將這個函數「轉換」爲一個對象。我不確定,但這對我來說是這條線的唯一目標。 –
我不確定這對我有意義。我在節點中的經驗是空對象沒有任何屬性。這可能會在瀏覽器中有所不同嗎? – Brad
事實上,代碼什麼都不做。我的猜測是,它只是將來對代碼進行修改的一個佔位符,因此如果應該將其他成員添加到對象中,它應該在那裏發生。 – trincot