【发布时间】:2012-01-26 06:13:04
【问题描述】:
我一直在搜索 SO,我知道有很多关于此的主题,但我还没有找到一个回答我的问题的主题。
我看到一个关于从这样的字符串中获取对象值的问题:
function getPropertyByString(str) {
var properties = str.split(".");
var myTempObject = window[properties[0]];
for (var i = 1, length = properties.length; i < length; i++) {
myTempObject = myTempObject[properties[i]];
}
return myTempObject;
}
因此,如果有一个名为 myGlobalVar 的全局变量,您可以传递字符串 'myGlobalVar.someProp.stateName' 并假设这一切都有效,您将返回 stateName 的值,例如 Arizona。
我现在如何将该属性更新到加利福尼亚?
如果我尝试
var x = getPropertyByString('myGlobalVar.someProp.stateName');
x = 'California';
这将更新 x 的值而不是对象。
我试过了
var x = getPropertyByString('myGlobalVar.someProp.stateName');
x.value = 'California';
那也没用。
有人可以通过我的示例帮助我理解这一点吗?
谢谢
【问题讨论】:
标签: javascript object pass-by-reference pass-by-value