我可以通过使用动态键和对象作为值来动态扩展对象吗?
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;
}
假设我有这个功能:
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;
}