【发布时间】:2014-08-24 22:31:18
【问题描述】:
我有一个对象(事物),它跟踪一些值以及一组条件:
var Thing = function(currentValue) {
this.currentValue = currentValue;
this.conditions = [];
};
条件可以添加到这个列表中:
Thing.prototype.addCondition = function(condition) {
this.conditions.push(condition);
}
我希望条件采取某种功能的形式,这样我就可以做到
thing.addCondition(thing.exampleCondition(valueToCheckFor));
这些条件都可以通过
来检查Thing.prototype.evaluateConditions = function() {
this.conditions.forEach(function(condition) {
if (condition()) {
//Do something
}
});
};
目前我有一个这样的条件函数:
Thing.prototype.exampleCondition = function(value) {
return function() {
return this.currentValue === value;
};
};
这显然不起作用 - this.currentValue 在匿名函数中未定义。我的问题是我需要在调用 evaluateConditions() 时根据 currentValue 的值对传递给 exampleCondition 的值进行评估 - 因此我不能这样做
Thing.prototype.exampleCondition = function(value) {
var c = this.currentValue;
return function() {
return c === value;
};
};
我是一个 javascript 菜鸟,但希望你们聪明的人可以在这里为我指明正确的方向。
【问题讨论】:
标签: javascript function this anonymous