jsbin
Есть такой простой пример:
// 1. Prototype
// базовая ф-ия-конст-ор
function Rectangle(w,h){
this.w = w;
this.h = h;
this.getArea = function () {
return this.w*this.h;
}
}
Rectangle.prototype.getArea = function () {
return this.w*this.h;
}
var
rect1 = new Rectangle(10,20),
rect2 = new Rectangle(5,20);
var
area = rect1.getArea(),
area2 = rect2.getArea();
console.log(area);
console.log(area2);
Пытаюсь разобраться в js, дошла до прототипов, но не могу понять некоторые моменты.
Какая разница в методах
this.getArea = function () {
return this.w*this.h;
}
и
Rectangle.prototype.getArea = function () {
return this.w*this.h;
}
Выполняются и так, и так и для всех экземпляров при любой записи, так как правильнее все же писать (через публичный метод ... this.Method ... или через прототип)?
Где вообще можно применить прототипы, для чего их создавать?