Речь идет о «наследовании» в JavaScript.
Предположим, я создаю конструктор Bird() и еще один конструктор с именем Parrot(), который я делаю для «наследования» свойств Bird, назначая его экземпляр прототипу Parrot, как показано в следующем коде:
function Bird() {
this.fly = function(){};
}
function Parrot() {
this.talk = function(){ alert("praa!!"); };
}
Parrot.prototype = new Bird();
var p = new Parrot();
p.talk(); // Alerts "praa!!"
alert(p.constructor); // Alerts the Bird function!?!?!
После того, как я создал экземпляр Parrot, почему его свойство .constructor является Bird(), а не Parrot(), который является конструктором, который я использовал для создания объекта?