2016-06-10 105 views
-2
var Object = { 
a : 1, 
b : 2, 
c : { 
     d : 4, 
     e : 5, 
    } 
} 

你好,我想用一个函数(我不知道6和f)动态地添加一个属性和他的值作为这个“Object.c.f = 6”。javascript在子对象中动态添加属性

//is it possible in pure javascript ? 
function add(f){ 
    object.c.f = f; 
} 
+4

你有什么好的,如果变量名是正确的作品。不要使用Object作为变量名称。 'var object'很好,并匹配函数中的用法。 –

+0

你可以用第三方的Object.prototype.setNestedValue()方法做到这一点。请参阅http://stackoverflow.com/questions/37368315/create-nested-object-which-contains-n-nested-objectsfrom-txt-file-javascript/37395701#37395701 – Redu

回答

0

你可以做到这一点jsFiddle

var obj = { 
a : 1, 
b : 2, 
c : { 
     d : 4, 
     e : 5, 
    } 
}; 

function add(name,val){ 
    obj.c[name] = val; 
} 

var n = "myprop"; 

add(n,10); 

alert(obj.c[n]); 

P.S:没有检查跨浏览器兼容,工作在Chrome V51