Зачем объявлять свойства в прототипе для переменных экземпляра в JavaScript
Я пытаюсь разобраться с этим черным искусством под названием JavaScript - и, должен признать, очень взволнован. Я искал примеры кода, в основном из "easeljs", так как это то, что я буду использовать в основном. И я немного запутался ..
Я (думаю, я) понимаю разницу между использованиемprototype
для функций или свойств, которыеclass
переменные и использованиеthis.someProp
для переменных экземпляра (да, я понимаю, что в JavaScript нет классов).
Код, который я посмотрел, и использую в качестве шаблонов для моего собственного кода,declare
prototype
переменные, а затем обращается к ним с этим, т.е.
В конструкторе:
this.name = name;
Тогда декларация:
Object.prototype.name;
И позже,
this.name = "Freddy";
Это внутри функций, вызываемых с помощью «new», поэтому в данном случае, насколько я понимаю,this
ссылается на текущий объект. Что меня озадачивает, что делает объявление прототипа и почему мы используем его для переменных экземпляра?
осветление: В следующем коде я не вижу, что достигается объявлением прототипа радиуса:
(function(){
// constructor
function MyCircle(radius){
this.radius = radius;
}
MyCircle.prototype.radius;
this.area = function(){
return 3.14*this.radius*this.radius;
};
window.MyCircle = MyCircle;
}());