所以我有以下代码:
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(structurals.loginStructure)
)只是一个 function()
。有没有办法让它返回我在那里的实际数组?
它的目的是将多个数组定义为对象键(如果可以返回这样的东西),因为它看起来更容易。或者有更好的方法吗?
最佳答案
你想要:
structures.loginStructure();
structures.loginStructure
只是返回对函数的引用,而不是执行函数并返回其结果。添加()
到它的末尾来执行它并返回它的结果。
或者,也许更好的是,不要将其编写为函数。只需声明loginStructure: ['<form name...
。基本上,只需删除 function(){return structure =
。这里需要注意的一个显着区别是,opts 的任何值都将立即计算,而不是推迟到稍后执行函数时 - 所以请不要盲目地将代码更新为此。
关于javascript - 如何从 JavaScript 中的对象键值返回数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8865054/