Отличие создания свойств объекта в конструкторе и через прототип конструктора в JavaScript.
Свойства, задаваемые в конструкторе, нельзя подменять через прототип.
Т.е. свойство задаваемое в конструкторе скрывает одноименное свойство в прототипе.
Например, для конструктора
Т.е. свойство задаваемое в конструкторе скрывает одноименное свойство в прототипе.
Например, для конструктора
function c() { this.a = "a"; }
запись
c.prototype.a = "a2";
не имеет смысла
(если не обращаться из объекта реализации напрямую, например myObj.constructor.prototype.a).
Далее JavaScript код для просмотра в дебаггинге.
Здесь метод assert никогда не будет выполнен.
запись
c.prototype.a = "a2";
не имеет смысла
(если не обращаться из объекта реализации напрямую, например myObj.constructor.prototype.a).
Далее JavaScript код для просмотра в дебаггинге.
Здесь метод assert никогда не будет выполнен.
var assert = function (res) { if (res !== true) alert("false"); }
function c() { this.a = "a"; }
c.prototype.b = "b";
var t1 = new c();
c.prototype.a = "a2";
c.prototype.b = "b2"; var t2 = new c();
assert(t1.a == t2.a);
assert(t1.a == "a");
assert(t1.b == t2.b);
assert(t1.b == "b2");
Комментарии
Отправить комментарий