【发布时间】:2015-01-18 19:13:27
【问题描述】:
我最初的目的是创建具有动态名称的变量,以避免重复声明var randName = document.createElement("div");。
所以,当时我只是在学习 JS 对象,我想我可以做这样的事情:
var createMe = function(){},
elemsArray = ['a', 'b', 'c', 'd', 'e'],
numbersArray = ['1', '2', '3', '4', '5'],
togetherArray = elemsArray.concat(numbersArray),
i;
for(i = 0; i < togetherArray.length; i++)
{
createMe.prototype[togetherArray[i]] = document.createElement("div");
createMe.prototype[togetherArray[i]].setAttribute("id", togetherArray[i]);
}
var awesomeObject = new createMe;
所以现在,我可以通过 awesomeObject.body 引用 HTML 元素,例如,操作它们,将它们插入 DOM 等等... 有了这个,我节省了一堆代码,它可以工作,并且可以满足我的需求,但是,我想知道我正在做的事情是否没有违反任何规则,速度很慢,或者是最好的方法。任何帮助表示赞赏。谢谢。
【问题讨论】:
-
这没什么问题。
-
感谢您的评论。我想知道这是不是唯一的方法?或者也许在对象内部有一个函数,它将数组作为输入并添加属性?
-
嗯,有各种各样的方法可以动态创建属性。哪个“更好”或“更差”取决于您要解决的问题。
-
好的,谢谢。我想这个问题有点毫无意义……我应该让它保持开放吗?
标签: javascript arrays object dynamic properties