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

Сделал вот так
window.all = ['ноль', 'один', 'два', 'три'];

var numbers = {
    find : function(num) {
        var ret = {};

        ret.setText = function(text) {
            window.all[this.num] = text;
            this.text = text;
            return this;
        };

        ret.num = num;
        ret.text = window.all[num];

        return ret;
    },

    findByText : function(text) {
        var num = 0;

        window.all.every(function(val, key){
            if(val == text) {
                num = key;
                return false;
            }
            return true;
        });

        return this.find(num);
    }
};
/////////////////////////////////////////////
var zero = numbers.find(0);
var two = numbers.find(2);
var one = numbers.findByText('один');

console.log('zero.text=' + zero.text); //ноль
console.log('two.text=' + two.text); //два
two.setText('двойка');
console.log('two.text=' + two.text); //двойка
console.log('numbers.find(2).text=' + numbers.find(2).text); //двойка

console.log('one.text=' + one.text); //один
one.setText('единица');
console.log('one.text=' + one.text); //единица
console.log('numbers.findByText(\'единица\').text=' + numbers.findByText('единица').text); //единица

Работает идеально, смотрится отлично.
Всё правильно сделал?
Ответить с цитированием