나는 이런 식으로 뭔가를 가정.으로 반복 생성자 체인까지
그러나 C() 함수, B() 함수, A() 함수를 반환 할 수 있도록 C() 인스턴스에서 시작하여 생성자 함수를 "반복"할 수 있습니까? 또 다른 인스턴스.
나는 이런 식으로 뭔가를 가정.으로 반복 생성자 체인까지
그러나 C() 함수, B() 함수, A() 함수를 반환 할 수 있도록 C() 인스턴스에서 시작하여 생성자 함수를 "반복"할 수 있습니까? 또 다른 인스턴스.
는 당신은 프로토 타입 체인을 반복 할 것이다, 그러나
for (var o=inst; o!=null; o=Object.getPrototypeOf(o))
console.log(o);
// {}
// C.prototype
// B.prototype
// A.prototype
// Object.prototype
를 수행하여 프로토 타입을 반복 할 수 있습니다. "생성자 체인"같은 것은 없습니다. 당신이 생성자에 액세스하려면 상속 적절 때, 당신은 프로토 타입에
set the .constructor
property해야합니다
function A() {}
function B() {}
B.prototype = Object.create(A.prototype);
B.prototype.constructor = B;
function C() {}
C.prototype = Object.create(B.prototype);
C.prototype.constructor = C;
var inst = new C();
for (var c=inst.constructor; c!=null; (c=Object.getPrototypeOf(c.prototype)) && (c=c.constructor))
console.log(c);
// C
// B
// A
// Object
어느 그때 다른 인스턴스를 인스턴스화하는 데 사용할 수있는
만 것 "체인"이 아니라, C
을 알아야합니다. C.prototype.constructor
을 올바르게 설정 한 경우 inst.constructor
을 통해 액세스 할 수 있습니다.
그러나 임의 생성자에서 개체를 인스턴스화하는 것은 좋지 않을 수 있습니다. 당신은 필요한 매개 변수를 모른다. actually want to do이 무엇인지 모르겠지만 요청 사항이 디자인 결함을 암시 할 수 있습니다.
개체 프로토 타입의 생성자 속성을 사용하여 체인으로 이동하십시오. 코드 후 예를 들어
, : 등
inst.constructor.prototype.constructor === A
... 그리고 같은
C.prototype.constructor === A
는 사실이다.
반복 함수는 무엇을 의미합니까? –