Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   data storage (https://javascript.ru/forum/misc/34224-data-storage.html)

shifteee 25.12.2012 00:42

data storage
 
Всемогущие, помогите!

иимеется функция:
...

this.toHash = function(el, act) {
        var dgs = [some digits, dependent on el];
        var name = [some string, dependent on el];

       var hash = {};
       hash.name = new Array();
       hash.dgs = new Array();
        
        var push = function() {
           ...
             
             hash.dgs.push(dgs);
             hash.name.push(name);
        };
        
        var del = function () {
            ...
        };

        switch(act) {
            case('ins') : 
                push();
                break;
                
        }
};

...


Задача проста как песня: сделать из hash хранилище данных, остающееся после выполнения функции this.toHash, не выпихивая ее определение за само тело функции this.toHash.

В приведенном тексте естественно после выполнения кода эта часть
Код:

07              var hash = {};
08              hash.name = new Array();
09              hash.dgs = new Array();

удаляется, а при запуске this.toHash создается новый объект hash. А хотелось бы чтобы объект hash оставался бы на всегда :(

Буду благодарен за подсказки :thanks:

bushstas 25.12.2012 08:17

а что если сделать переменную hash глобальной убрав перед ней
var

devote 25.12.2012 11:57

Цитата:

Сообщение от bushstas
а что если сделать переменную hash глобальной убрав перед ней

что за вредные советы вы тут даете

может стоит:
this.toHash = function(el, act) {
    var dgs = [some digits, dependent on el];
    var name = [some string, dependent on el];
 
    var hash = this.__hash = this.__hash || {name: [], dgs: []};
         
    var push = function() {
        ...
              
        hash.dgs.push(dgs);
        hash.name.push(name);
    };
         
    var del = function () {
        ...
    };
 
    switch(act) {
        case('ins') : 
            push();
            break;
              
    }
};

shifteee 25.12.2012 19:37

Спасибо. Коротко и по делу :)


Часовой пояс GMT +3, время: 15:48.