我正在创建一个类,它调用一个方法来进行一些处理并设置一些数据。我正在使用 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;
}
}
这是一种反模式。这是没有用的。没有理由使用静态方法而不只是类外部的方法。
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;
}
类是一种反模式。静态方法是反模式之上的反模式。
这取决于您的情况。您想在课堂内外经常使用这种方法吗?那么保持它静态就可以了。但是,如果您在类外不需要此方法,又不想创建其对象,则将其转换为普通成员方法。