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

Can I extend object dynamically by using a dynamic key and object as a value?

假设我有这个功能:

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'}
}

这能以某种方式完成吗? 我想在不在扩展函数中创建新对象的情况下执行此操作。

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 即可。您可以使用括号表示法将键分配给对象。这样你就可以将它设置为你定义的变量。

如果您只是想向 obj 添加属性,您可以这样做:

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