我試圖創建能夠設置對象的某個值的函數,具有屬性的「路徑」:node.js中設置屬性從字符串屬性名
reflectionSet = function(obj, propString, value) {
var current = obj;
var splitted = propString.split('.');
splitted.forEach(function(k) {
current = current[k];
})
current = value;
}
var test = {
a: {
s: 'asd',
g: 'asasdasdd'
}
};
reflectionSet(test, 'a.g', "otherValue");
,它應該成爲:
{
a: {
s: 'asd',
g: 'otherValue'
}
}
不幸的是,這並不在所有的工作..謝謝
這是因爲JavaScript是 「傳遞的價值」。這意味着當你收集變量g時,你不會改變Object中的值。只是從Object中收集的值。 [Here](http://stackoverflow.com/questions/6605640/javascript-by-reference-vs-by-value)是一個更詳實的解釋 – magnudae 2014-10-20 14:05:43