Какая разница в объектах?
function F(id,a,b){
this.getID=function(){return id}
this.getSum=function(){return a+b}
}
или
function F(id,a,b){
this.id=id;
this.a =a;
this.b = b;
this.getID=function(){return this.id}
this.getSum=function(){return this.a+this.b}
}
Объект упрощенный, и таких объектов много. Меня терзают смутные сомнения, что надо использовать второй вариант. Посоветуйте как правильней... |
Нужно использовать третий вариант:
сначала прочитать, как там всё устроено http://learn.javascript.ru/prototypes а потом использовать babel или typescript с нормальными классами |
am_sasa, во втором варианте мы можем всегда перезаписать свойства из вне:
var f = new F(null, 1, 1); f.a = 2; f.b = 3; alert( f.getSum() ); //5 |
Спасибо, изучу. Правда там про ООП (прототип), которого у меня нет, но все равно спасибо.
|
я имел ввиду, что при замыкании будут создаваться новые функции на каждый объект, а не использоваться существующие (имхо). Если не прав, то замыкания тоже хорошо.
|
am_sasa, у вас в обеих вариантах каждый раз создаются новые функции.
Используйте прототипы:
function F(id, a, b) {
this.id = id;
this.a = a;
this.b = b;
};
F.prototype = {
getID: function() {
return this.id;
},
getSum: function() {
return this.a + this.b;
}
};
|
Ruslan_xDD, вот за это спасибо, теперь понял, так и сделаю.
|
| Часовой пояс GMT +3, время: 04:31. |