Рассмотрим следующий код.
function a() {}
function b() {}
function c() {}
b.prototype = new a();
c.prototype = new b();
console.log((new a()).constructor); //a()
console.log((new b()).constructor); //a()
console.log((new c()).constructor); //a()
- Почему конструктор не обновляется для b и c?
- Я делаю наследование неправильно?
- Каков наилучший способ обновления конструктора?
Далее, пожалуйста, рассмотрите следующее.
console.log(new a() instanceof a); //true
console.log(new b() instanceof b); //true
console.log(new c() instanceof c); //true
- Учитывая, что
(new c()).constructor
равноa()
, аObject.getPrototypeOf(new c())
-a{ }
, как можноinstanceof
знать, чтоnew c()
является экземпляромc
?