我试图创建能够设置对象的某个值的函数,具有属性的“路径”: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