因此,每提及__proto__後通常會引用Brendan Eich的請求,以免使用它。我一直在使用Typescript進行反思,將一個類的原型鏈導航到一個使用它的祖先類,並且願意注入一個包含類元數據的單一原型屬性。Typescript和__proto__屬性
有沒有人有任何具體的性能開銷,我可能會招致,或不依賴於__proto__的解決方案?
編輯 - 用代碼更新。這只是我輸入的一個人爲的例子,但它說明了我希望做的事情。我不太確定如何對由__proto__突變引起的pergieved減速進行基準測試。但無論如何我還是給了它一個鏡頭。實例化,原型屬性訪問和方法調用執行沒有不同的修改。
class Base {
public getClassName() : string {
return this['_className'] || undefined;
}
}
class Intermediate extends Base {
}
class Final extends Intermediate {
}
function traverseProtoChain(derivedClass, baseClass) {
var cursor = derivedClass.prototype;
while (cursor instanceof baseClass) {
if (isDefined(cursor.constructor)) {
var className = getProtoName(cursor);
if (isValidString(className))
cursor['_className'] = getProtoName(cursor);
}
if (isDefined(cursor.__proto__)) {
cursor = cursor.__proto__;
}
}
}
顯示你認爲的代碼 – basarat