2016-06-10 44 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