У меня есть следующий код JavaScript
function Parent() {
}
function Child() {
}
Child.prototype = Object.create(Parent.prototype);
Обратите внимание на отсутствие утверждения
Child.prototype.constructor = Child;
Я понимаю, что, поскольку свойство constructor
не было установлено, проверки instanceof
должны завершиться неудачно для новых экземпляров класса Child
.
var child = new Child();
child instanceof Child; //Should give false
Я проверил, что конструктор неправильно установлен
Но когда я запустил child instanceof Child
, он дал мне истинную
Но это должно быть false
, поскольку свойство конструктора не установлено на прототипе Child
как Child
.
Окружающая среда
Google Chrome Version 48.0.2564.109 (64-bit)
Ubuntu 14.04 LTS