因此,每提及__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