将 class 方法作为参数传递给 underscore.js
Pass class method as parameter to underscore.js
这是我的代码:
export class DefectResource {
setFormattedDateForDefect(defect) {
defect.startFormatted = this.dateConverter.convertFromUnixDate(defect.start);
defect.finishFormatted = this.dateConverter.convertFromUnixDate(defect.finish);
return defect;
};
setFormattedDateForDefects(defects) {
return _.map(angular.fromJson(defects), this.setFormattedDateForDefect);
};
}
我正在为对象集合调用 setFormatedDateForDefects()
,此方法必须为此集合的每个方法调用 setFormattedDateForDefect()
。但是不要打电话。
我知道原因是 this
关键字,在此上下文中它不是对象,但我不知道如何修复它。
如何修复代码?
您可以对方法声明使用 => 语法,这将确保它们始终绑定到 "correct" this。
export class DefectResource {
setFormattedDateForDefect = (defect) => {
defect.startFormatted = this.dateConverter.convertFromUnixDate(defect.start);
defect.finishFormatted = this.dateConverter.convertFromUnixDate(defect.finish);
return defect;
};
setFormattedDateForDefects = (defects) => {
return _.map(angular.fromJson(defects), this.setFormattedDateForDefect);
};
}
这是我的代码:
export class DefectResource {
setFormattedDateForDefect(defect) {
defect.startFormatted = this.dateConverter.convertFromUnixDate(defect.start);
defect.finishFormatted = this.dateConverter.convertFromUnixDate(defect.finish);
return defect;
};
setFormattedDateForDefects(defects) {
return _.map(angular.fromJson(defects), this.setFormattedDateForDefect);
};
}
我正在为对象集合调用 setFormatedDateForDefects()
,此方法必须为此集合的每个方法调用 setFormattedDateForDefect()
。但是不要打电话。
我知道原因是 this
关键字,在此上下文中它不是对象,但我不知道如何修复它。
如何修复代码?
您可以对方法声明使用 => 语法,这将确保它们始终绑定到 "correct" this。
export class DefectResource {
setFormattedDateForDefect = (defect) => {
defect.startFormatted = this.dateConverter.convertFromUnixDate(defect.start);
defect.finishFormatted = this.dateConverter.convertFromUnixDate(defect.finish);
return defect;
};
setFormattedDateForDefects = (defects) => {
return _.map(angular.fromJson(defects), this.setFormattedDateForDefect);
};
}