JavaScript ES6 类 - 调用静态方法在类中设置实例是否是反模式?

问题描述 投票:0回答:2

我正在创建一个类,它调用一个方法来进行一些处理并设置一些数据。我正在使用 ESLINT,它警告我不要在未引用

_
的方法前面使用
this
。该方法仅适用于实例内。将该方法转换为静态方法可以消除警告。想知道在实例化期间使用静态方法设置实例是否是反模式,或者是否应该将其保留为实例方法?下面的示例类。谢谢!

class AppDataArray extends BaseXmlBuilder {
  constructor(arrayOfData) {
    super();
    this.payload = this._buildAppDataArray(arrayOfData);
  }

  static _buildAppDataArray(arrayOfData) {
    const arrayOfAppData = arrayOfData.map((data) => {
      const { app, name, value } = data;
      const appData = new AppData(app, name, value);
      return appData.payload;
    });
    return arrayOfAppData;
  }
}
javascript class static-methods es6-class instance-methods
2个回答
0
投票

这是一种反模式。这是没有用的。没有理由使用静态方法而不只是类外部的方法。

class AppDataArray {}

const buildAppDataArray = (arrayOfData) => {
  const arrayOfAppData = arrayOfData.map((data) => {
    const { app, name, value } = data;
    const appData = new AppData(app, name, value);
    return appData.payload;
  });

  return arrayOfAppData;
}

类是一种反模式。静态方法是反模式之上的反模式。


-2
投票

这取决于您的情况。您想在课堂内外经常使用这种方法吗?那么保持它静态就可以了。但是,如果您在类外不需要此方法,又不想创建其对象,则将其转换为普通成员方法。

© www.soinside.com 2019 - 2024. All rights reserved.