Связь статических объектов с приватными переменными
empty
|
Если честно я не совсем понимаю что вам надо, но может быть так:
function A(input) { var _name; this.getName = function() { return _name; }; this.setName = function(input) { _name = input; }; }; window.onload=function(){ exemplareObject = new A(); exemplareObject.setName('test'); var testVaribele = exemplareObject.getName('test'); alert("testVaribele : " + testVaribele); alert("_name : " + _name); } Я понял... речь о статических методах. Я правильно понимаю: вы пытаетесь создать что-то типо статического getter и setter? |
В джаваскрипте нет приватных свойств. Используй символ подчеркивания для условности.
|
Цитата:
|
Цитата:
|
Во втором случае метод toString вызывается сразу, до его затирания (которое происходит при создании нового экземпляра)
|
okouser,
:write: function A(name) { var _name = 'test'; A.prototype.getName = function() { return _name + this._name; }; A.prototype.setName = function(value) { this._name = value; }; A.prototype.toString = function() { return this.getName(); }; this.setName(name); }; A.A1 = new A("1"); A.A2 = new A("2"); A.A3 = new A("3"); alert(A.A1); // test1 alert(A.A2); // test2 alert(A.A3); // test3 A.A2.setName(12345) alert(A.A2); // test12345 alert(A.A3); // test3 |
Это не архитектура а говнокод. С говнокодом помочь не могу..
|
Я просто сейчас как раз читаю раздел ООП в JS: мне это тоже интересно.
Вы пишите про статические экземпляры класса, но мне это не о чём не говорит. Я знаю суть статического свойства класса и статического метода класса, но в чём суть статического экземпляра класса? A.prototype.setName = function(value){ _name = value; }; Вот эту строчку я перевожу как: присвоить всем инстанциям этого объекта метод setName. Зачем его указыввать внутри объекта? Я так понял из теории, что внутри объекта вы просто объявляете метод.. А вот если после объявления объекта вам надо присвоить новый метод и метод должен принадлежать всем инстанциям этого объекта, то нужно образаться к свойству (или методу?) prototype |
Цитата:
|
Часовой пояс GMT +3, время: 18:46. |