我有一个组件对象,它是对DOM元素的引用,但也具有其他一些属性,例如“ top”,“ left”,“ formatters”等。
我在组件类中有一个“刷新”方法,该方法应该更改其属性。我正在这样调用方法:
component.refresh(200,300,'formatter1');
以及我使用的方法的主体:
private refresh(top, left, formatter) {
this.top = top;
this.left = left;
this.formatter = formatter;
}
我的目标是更改组件对象的属性。问题是,当第一次分配属性时,一切都很好(正在创建属性),但是当组件中已经存在属性时,就无法替换(属性保持与以前相同)。换句话说-可以在元素已经设置后更改其某些“ this”属性吗?
如果您使用像React / Redux这样的库,则永远不要对数据进行突变,您是否想要这样的东西?如果是这样,通常可以通过返回具有新值的新对象来解决该问题,从而使原始值不发生变化,如果更改了将保留该原始对象的任何变量,则将对其进行垃圾收集。
所以您需要的是这个:
component = component.refresh(200,300,'formatter1');
private refresh(top, left, formatter) {
return new Component(top, left, formatter);
}