我可以使用动态键和对象作为值动态扩展对象吗?

时间:2015-08-06 17:09:02

标签: javascript jquery javascript-objects

假设我有这个功能:

var obj = {};
extend('myKey', 'myVal', 'mySomething');

function extend(key, val, something){
  $.extend(obj, {
    key : {
      value: val, 
      something: something
  }); // key is set as "key" and not as the key real value
  // I want obj to now have a key which is 'myKey'
  // and a value which is an object:
  // {value:'myVal', something:'mySomething'}
}

这可以以某种方式完成吗? 我想在不在extend函数中创建新对象的情况下这样做。

2 个答案:

答案 0 :(得分:2)

var obj = {};
extend('myKey', 'myVal', 'mySomething');

function extend(key, val, something){
        obj[key] = {value:val, something:something}; 
                                                
}

//this line is just to show the result of the function, not part of the solution.      
document.body.innerHTML += JSON.stringify(obj);

只需使用纯JavaScript即可。您可以使用括号表示法为对象指定键。这样您就可以将其设置为您定义的变量。

答案 1 :(得分:2)

如果您只想尝试向obj添加属性,则可以执行以下操作:

function addProp(obj, key, value) {
    obj[key] = value;
}