Javascript, устанавливающий свойства объекта с типом значения в прототипе? [закрыто]
Я всегда устанавливал свойства с типом значения в прототипе объекта, так как это останавливает их инициализацию при каждом создании объекта.
С тех пор я провел некоторую отладку и обнаружил, что если значение этого свойства прототипа когда-либо изменится, то объекту будет назначено новое свойство, а прототип останется на месте.
var o = function () {
};
o.prototype.x = 0;
o.prototype.setX = function(x) {
this.x = x;
};
var obj = new o();
obj.setX(1);
console.log(obj);
// o {x: 1, x: 0, setX: function}
Поэтому мой вопрос: если вы знаете, что значение свойства prototype, вероятно, изменится, то есть ли реальная выгода в его установке в прототипе и получении выгоды от того, что его не нужно инициализировать при создании объекта?
Я имею в виду, что когда оно меняется на другое значение, новое значение должно быть в любом случае присвоено существующему объекту, теряя при этом первоначальное преимущество его установки в прототипе! Кроме того, теперь это означает, что у вас есть 2 свойства для одной и той же вещи - объекта и прототипа.
Он говорит разработчикам Google, что это способ сделать это, но я не уверен.
Когда следует устанавливать свойства типа значения в прототипе и есть ли реальный выигрыш в производительности, если вы знаете, что значение все равно изменится?