这可能是一个愚蠢的问题,但我可以在以下情况下使用哪种模式来使用 bind 方法在下面的代码中将方法内的此的值绑定下来。
'use strict';
exports.service = function() {
this.colors = [];
this.years = [];
this.trims = [];
var scope = this;
this.setColors = function(colorsArr) {
scope.colors = colorsArr;
};
this.setYears = function(yearsArr) {
scope.years = yearsArr;
};
this.getVehicleDetails = function() {
return {
colors: scope.colors,
years: scope.years
};
};
this.getTrims = function() {
return trims;
};
};
答案 0 :(得分:0)
请参阅所有方法的bind
。然后你可以在所有内部方法中使用this
。
'use strict';
exports.service = function() {
this.colors = [];
this.years = [];
this.trims = [];
this.setColors = function(colorsArr) {
this.colors = colorsArr; // Use this here
}.bind(this); // Change of context
this.setYears = function(yearsArr) {
this.years = yearsArr; // Use this here
}.bind(this); // Change of context
this.getVehicleDetails = function() {
return {
colors: this.colors, // Use this here
years: this.years // Use this here
};
}.bind(this); // Change of context
this.getTrims = function() {
return this.trims; // Use this here
}.bind(this); // Change of context
};