그래서 __proto__에 대한 모든 언급에는 대개 Brendan Eich가 사용하지 말라는 내용이 나와 있습니다. 나는 Typescript에서 약간의 반성을 가지고 놀았으며, 클래스의 프로토 타입 체인을 사용하여 제공된 상위 클래스로 이동했으며 클래스 메타 데이터를 보유하는 단일 프로토 타입 속성을 주입하려고합니다.Typescript 및 __proto__ 속성
성능상의 오버 헤드에 대한 세부 사항이나 __proto__에 의존하지 않는 솔루션은 있습니까?
편집 - 코드로 업데이트. 이것은 필자가 입력 한 고의적 인 예일 뿐이지 만 내가 원하는 것을 보여줍니다. 나는 __proto__ 돌연변이로 인한 침체 된 속도 저하를 벤치마킹하는 방법을 잘 모르겠습니다. 그러나 어쨌든 나는 그것을 쐈다. 인스턴스화, 프로토 타입 속성 액세스 및 메서드 호출은 수정 사항을 제공 할 때마다 다르게 실행됩니다.
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