Подтвердить что ты не робот

Преимущества настройки свойства "конструктор" в "prototype"

В наследовании прототипа JavaScript, в чем заключается цель добавления свойства prototype.constructor. Позвольте мне объяснить на примере.

var Super = function() {
    this.superProperty = 'Super Property'
}
var Sub = function() {
    this.subProperty = 'Sub Property'
}

Sub.prototype = new Super();
Sub.prototype.constructor = Sub; // advantages of the statement

var inst = new Sub();

Следующие строки возвращают всегда true во всех случаях при добавлении Sub.prototype.constructor = Sub или нет.

console.log(inst instanceof Sub)   // true
console.log(inst instanceof Super) // true

Я думаю, это может быть полезно при получении новых экземпляров, но когда и/или как?

Спасибо заранее.

4b9b3361

Ответ 1

Это просто для правильного reset свойства constructor для точного отражения функции, используемой для построения объекта.

Sub.prototype = new Super();

console.log(new Sub().constructor == Sub);
// -> 'false' 

Sub.prototype.constructor = Sub;
console.log(new Sub().constructor == Sub);
// -> 'true'