Как я могу вернуть массив из значения ключа объекта в JavaScript? - PullRequest
2 голосов
/ 15 января 2012

Итак, у меня есть следующий фрагмент кода:

var structures = {

    loginStructure : function(){

        return structure = [
            '<form name="',opts.formClass,'" class="',opts.formClass,'" method="post" action="#">',
                '<fieldset class="',opts.fieldsWrapper,'">',
                    '<fieldset class="',opts.userWrapper,'">',
                        '<label for="',opts.userInt,'" class="',opts.userLbl,'"><img src="',opts.userIcon,'" alt="',opts.userName,'" /></label>',
                        '<input type="text" name="',opts.userInt,'" class="',opts.userInt,'" placeholder="',checkNameLenght(opts.userName,namesLenght.userNameLenght,16,'Username'),'" value="" autocomplete="off" />',
                    '</fieldset>',
                    '<fieldset class="',opts.passWrapper,'">',
                        '<label for="',opts.passInt,'" class="',opts.passLbl,'"><img src="',opts.passIcon,'" alt="',opts.passName,'" /></label>',
                        '<input type="password" name="',opts.passInt,'" class="',opts.passInt,'" placeholder="',checkNameLenght(opts.passName,namesLenght.passNameLenght,16,'Password'),'" value="" autocomplete="off" />',
                    '</fieldset>',
                    '<fieldset class="',opts.btnWrapper,'">',
                        '<button type="submit" name="',opts.btnInt,'" class="',opts.btnInt,'">',checkNameLenght(opts.btnName,namesLenght.btnNameLenght,7,'Login'),'</button>',
                    '</fieldset>',
                '</fieldset>',
                '<div class="toogle-button">',
                    '<ul class="inside">',
                        '<li class="toogle"><a><img src="assets/gfx/toogle.png" alt="Back" /></a></li>',
                    '</ul>',
                '</div>',
            '</form>',
            '<div class="toogle-buttons">',
            '</div>'
        ];
    }

}

Это возвращает (если я делаю console.log(structures.loginStructure)) только function().Есть ли способ, которым я могу сделать это, чтобы вернуть фактический массив, который у меня там?кажется проще.Или есть лучший способ сделать это?

1 Ответ

4 голосов
/ 15 января 2012

Вы хотите:

structures.loginStructure();

structures.loginStructure просто возвращает ссылку на функцию, а не выполняет функцию и возвращает ее результат. Добавьте () в конец, чтобы выполнить и вернуть результат.

В качестве альтернативы, а может и лучше, не пишите это как функцию. Просто объявите loginStructure: ['<form name.... В основном, просто удалите function(){return structure =. Существенное отличие, которое следует здесь отметить, заключается в том, что любые значения параметров будут оцениваться немедленно, а не откладываться до более позднего момента, когда будет выполняться функция, поэтому, пожалуйста, не обновляйте ваш код слепо до этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...