Javascript 函数更改object.object属性
我试图在这里使用一些对象,并希望为其提供一个简单的读/写函数 我的对象将包含更多对象,因此问题在于访问子对象属性。我可以很简单地阅读它,但是当我试图更改属性值时,我只更改了可变目标函数,这样它就不再指向对象了Javascript 函数更改object.object属性,javascript,Javascript,我试图在这里使用一些对象,并希望为其提供一个简单的读/写函数 我的对象将包含更多对象,因此问题在于访问子对象属性。我可以很简单地阅读它,但是当我试图更改属性值时,我只更改了可变目标函数,这样它就不再指向对象了 var OBJ = { name:"", obj2: { name:"Test", something:"text" } }; function readFromObject(target){ console.log
var OBJ = {
name:"",
obj2:
{
name:"Test",
something:"text"
}
};
function readFromObject(target){
console.log(target);
}
function writeToObject(target,val){
target = val;
// More code
}
readFromObject(OBJ.obj2.name);
writeToObject(OBJ.obj2.name,"newVal");
readFromObject(OBJ.obj2.name);
希望有人能理解我的意图。看起来你只是想做一个通用的setter和getter 您可以这样做:
function readFromObject(obj, property) {
console.log(obj[property]);
}
function writeToObject(obj, property, value) {
obj[property] = value;
// More code
}
readFromObject(OBJ.obj2, 'name');
writeToObject(OBJ.obj2, 'name', 'newVal');
readFromObject(OBJ.obj2, 'name');
OBJ.obj2.name=newVal?writeToObjectOBJ.obj2.name,newVal的兴趣是什么;而不是OBJ.obj2.name=newVal?当您将OBJ.obj2.name作为参数时,您只会给出name字段的字符串值。只有价值,而不是参考。你试图达到的目标对我来说毫无意义。为什么要输入更多?使用它而不是只写OBJ.obj2['name']='newVal'是没有意义的;这是有道理的。这就像一个简单的二传手。有时,每次更改对象中的值时,都需要执行一些代码。用你想要的替换//更多的代码。好吧,我现在明白了,但问题仍然很糟糕。谢谢你的回答,太完美了。就像Magus说的,每次物体改变时,我都会做一些事情。