微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将插值的字符串/动态属性传递给Javascript哈希?

如何解决如何将插值的字符串/动态属性传递给Javascript哈希?

| 所以我有一个事件处理程序,基本上是这样的:
function foo(category_key,category_value){
   ...
   person.set({\"data-\"+category_key:category_value});
   ...
}
而且,如果我这样做: foo(\“ age \”,12); 我希望set函数引用该哈希中的\“ data-age \”键...如何评估该键,以便引用\“ data-age \”而不是\“ category_key \”?在冒号之前抛出括号,并引发\“ invalid property id \”错误。 看来我可以制作一个新对象并传递如下内容
function foo(category_key,category_value){
   ...
   var ob = new Object();
   ob[\"data-\"+category_key] = category_value;
   person.set(ob);
   ...
}
但是我想知道是否还有更简洁的方法。     

解决方法

           但是我想知道是否还有更简洁的方法。 使其更简洁的唯一方法是使用
{}
(对象文字)而不是
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));
    ...
}
    ,        在ECMAScript 5中,您可以使用
Object.defineProperty
(MDC参考)。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。