Я пытаюсь получить контроль над конструкторами javascript и если они действительно доступны только для чтения. Вот простой тест сценарий:JavaScript-конструкторы
var A = function(){}
console.log(A.prototype.constructor == A); //true
Таким образом, в этот момент, каждая новая функция получает объект-прототип, который содержит конструктор в качестве ссылки. Это все хорошо. Теперь рассмотрим это:
var B = function() {
this.id = 0;
}
A.prototype.constructor = B; // what does this do with A?
Так что теперь, каждый экземпляр должен получить B в качестве конструктора:
var C = new A();
console.log(C.constructor == B) // true
Итак, наконец, это имеет никакого реального влияния на каждом конкретном случае? Это не выглядит так:
console.log(C.id); // what will this yield?
Мой вопрос: какова цель разоблачения ссылки на конструктор? Очевидно, вы можете установить/переопределить его, но он ничего не делает, кроме изменения ссылки. Или я чего-то не хватает?
Привет, каждый пост, книги, о Javascript наследования, говорит нам, чтобы исправить конструктор прототипа, после этого situtation: 'A.prototype = Object.create (B.prototype),' ' A.prototype.constructor = B // fix here here Я не знаю, что делает объект Object.create, однако следующая строка кажется бесполезной. Я написал код, удаляющий его, и это не имеет никакого эффекта. Поэтому мой вопрос в том, почему все говорят, чтобы * исправить * конструктор? –