Какая разница в объектах?
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, время: 13:46. |