所以我有一个事件处理程序,基本上是这样的:
function foo(category_key, category_value){
...
person.set({"data-"+category_key:category_value});
...
}
如果我这样做的话:
foo("年龄", 12);
我希望 set 函数引用该哈希中的“data-age”键...如何评估该键以便引用“data-age”而不是“data-age” “类别键”?在冒号之前的表达式两边加上括号会引发“无效的属性 ID”错误。
看来我可以创建一个新对象并传入如下内容:
function foo(category_key, category_value){
...
var ob = new Object();
ob["data-"+category_key] = category_value;
person.set(ob);
...
}
但我想知道是否有更简洁的方法来做到这一点。
最佳答案
But I was wondering if there was a more terse way of doing this.
使其更简洁的唯一方法是使用 {}
(object literal )而不是 new Object()
— 并使用较短的变量名称。
function foo(key, value)
{
...
var ob = {};
ob['data-'+key] = value;
person.set(ob);
...
}
这不一定会使整个代码更短,但您可以将该逻辑放入单独的函数中:
function bar(k, v)
{
var o = {};
o[k] = v;
// or o['data'+k] = v;
return o;
}
function foo(key, value)
{
...
person.set(bar('data-'+key, value));
// or person.set(bar(key, value));
...
}
关于javascript - 如何将内插字符串/动态属性传递到 Javascript 哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6323714/