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说的,每次物体改变时,我都会做一些事情。