0

当您将对象引用作为参数传递给函数时,分配给该引用只会更改引用的内容,但不会更改值,如下所示:

class meh {
    constructor() {
        this.obj = { member: 7 };
    }

    doSomething() {
        doFn(this.obj);
    }
    doFn(objRef) {
        objRef = { newMember: 4 } // Doesn't overwrite obj; merely assigns a new object to objRef.
    }
}

但是有没有办法覆盖或以其他方式为对象引用指向的实际位置分配一个值?意思是,有没有办法将新对象分配给objRef(in doFn) 并将其反映在 中obj

4

1 回答 1

-1

这取决于你的情况。

以 react 为例,您可以将变量存储在一个状态中,该状态有一个用于更新的预内置函数,称为 this.setState,但是如果您使用的是纯 JavaScript,您可以创建自己的全局变量存储,并且然后直接更新那些。我不建议这样做,但作为示例,您可以将变量存储在 window['somevariable'] 下以将它们存储在 window 对象中,以后可以访问这些变量。

为了使它更加花哨,您可以创建预先构建的函数来为您完成您可以调用的工作,将变量的参数和要更新的值作为对象传递,并且您模仿了状态特征做出反应。

Redux 再举一个例子,它是否通过一个集中的“存储”巧妙地解决了问题,您可以在其中发送数据并从中检索数据,检查一下。

我希望它能回答你的问题。

于 2018-06-21T18:25:48.367 回答