已设置此属性时更改其属性值

问题描述 投票:1回答:1

我有一个组件对象,它是对DOM元素的引用,但也具有其他一些属性,例如“ top”,“ left”,“ formatters”等。

我在组件类中有一个“刷新”方法,该方法应该更改其属性。我正在这样调用方法:

component.refresh(200,300,'formatter1');

以及我使用的方法的主体:

private refresh(top, left, formatter) {
  this.top = top;
  this.left = left;
  this.formatter = formatter;
}

我的目标是更改组件对象的属性。问题是,当第一次分配属性时,一切都很好(正在创建属性),但是当组件中已经存在属性时,就无法替换(属性保持与以前相同)。换句话说-可以在元素已经设置后更改其某些“ this”属性吗?

javascript html css oop dom
1个回答
0
投票

如果您使用像React / Redux这样的库,则永远不要对数据进行突变,您是否想要这样的东西?如果是这样,通常可以通过返回具有新值的新对象来解决该问题,从而使原始值不发生变化,如果更改了将保留该原始对象的任何变量,则将对其进行垃圾收集。

所以您需要的是这个:

component = component.refresh(200,300,'formatter1');

private refresh(top, left, formatter) {
  return new Component(top, left, formatter);
}
© www.soinside.com 2019 - 2024. All rights reserved.