假设我有这个功能:
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函数中创建新对象的情况下这样做。
答案 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;
}