Показать сообщение отдельно
  #1 (permalink)  
Старый 03.03.2013, 20:21
Интересующийся
Отправить личное сообщение для user222 Посмотреть профиль Найти все сообщения от user222
 
Регистрация: 03.03.2013
Сообщений: 15

Независимые свойства объектов в переменных
Я не знаю как это называется, и название топика такое же.
Видел на одном сайте очень удобную штуку для работы с данными пользователей.
var vasea = users.findByName('Вася');
var alex = users.findByName('Саша');

alert(vasea.lastname); //Пупкин
alert(alex.lastname); //Иванов

Как возвращать - я ещё понимаю - просто return {lastname: ...};
Но возможно ли изменять потом их? Посмотрел http://javascript.ru/tutorial/object и стал пробовать:
var numbers = {
    all : ['ноль', 'один', 'два', 'три'],

    find : function(num) {
        this.text = this.all[num];

        return this;
    }
};

var zero = numbers.find(0);
var two = numbers.find(2);

alert('0=' + zero.text); //0=два
alert('2=' + two.text); //2=два

Ну это логично. Мы же меняем одно и то же.
Пробовал куда-то впихнуть prototype, хотя я не совсем понял как с ним работать. Точнее не понял как он может мне помочь. Но всё равно у меня получилось 0=2.
Тогда у меня другая идея.
numbers = {find:function(num){return new numbers_sys(num)}};

numbers_sys будет работать с window.all, которая ['ноль', 'один', 'два', 'три']
Но я чувствую, что оно делается не так.
Под "менять" имею в виду
numbers.find(2).text; //два
numbers.find(2).setText('двойка');
numbers.find(2).text; //двойка

Как это делается? Да и возможно ли это вообще... Может надо делать как я думаю - return new ...
Ответить с цитированием