【发布时间】:2014-08-06 00:19:44
【问题描述】:
这个问题看起来有点像this one,但它并没有解决我的问题。
我有一个命名空间的对象数组,例如 color.blue(color 是命名空间,blue 是对象数组),我需要这样做:
var color = {
red:[],
blue:[]
}
function foo(arg){
for(var i = 0; i < arg.length; i++){
color.arg[i].push(obj);
}
}
所以我可以通过调用此函数将obj 对象添加到对象的命名空间数组中,但此代码会引发错误[Error] TypeError: undefined is not an object (evaluating 'color.arg[i]')。我什至尝试过使用eval()(成功),但我想避免缓慢/邪恶的代码。 有人可以帮我吗?
请注意,我不想在函数的参数中写命名空间,只是“红色”或“蓝色”
Here's a JSFiddle。我想添加 console.log 以打印 ["abc"] 而无需在函数参数中输入命名空间。
【问题讨论】:
-
color[arg[i]].push(obj);
标签: javascript function namespaces