上我希望能夠通過給予不符號路徑值來設置私人對象上的屬性。難點在於這個對象在關閉狀態,所以我不能直接訪問它來設置正常方式的值(例如,dot.notation.path = 'new value'
)。這似乎很奇怪,但我想不出明顯的辦法。如何設置特定屬性的私人對象
實施例:
// setter function
function set(path, change){
var privateObject = {
a: 'a',
b: 'b',
c: {
d: 'd',
e: 'e'
}
}
privateObject[path] = change;
return privateObject;
}
// execution
var result = set('c.d', 'new value');
// desired result
//{
// a: "a"
// b: "b"
// c: {
// d: "new value",
// e: 'e'
// }
//}
// actual result
//{
// a: "a"
// b: "b"
// c: {
// d: 'd',
// e: 'e'
// }
// c.d: "new value"
//}
工作實施例:
[更新]替換示例:
雖然如此,這並沒有真正回答這個問題。它只是說他做的事情不會奏效 - 他已經知道了,因爲它失敗了。 :-) –
它仍然澄清事項 –
@JonasH你會建議這樣的事情嗎? http://jsfiddle.net/spwDp/10/ – wilsonpage