javascript在该上下文中返回新函数
我正在使用以下代码检索模块的一些过滤的私有信息:javascript在该上下文中返回新函数,javascript,this,factory,Javascript,This,Factory,我正在使用以下代码检索模块的一些过滤的私有信息: var someObject = (function (){ var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]; function filteredNumbersInternal(criterion) { return numbers.filter(function (number) { return criterion(number, this) }, this); }
var someObject = (function (){
var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9];
function filteredNumbersInternal(criterion) {
return numbers.filter(function (number) { return criterion(number, this) }, this);
}
return {
filteredNumbers: filteredNumbersInternal
}
});
var someInstance = new someObject();
function less(than) {
return function (number, context) {
return number < than;
}
}
var smallNumbers = someInstance.filteredNumbers(new less(5));
如果我这样写工厂
function less(than) {
return new function (number, context) {
return number < than;
}
}
功能小于(小于){
返回新函数(编号、上下文){
返回数<小于;
}
}
它只返回空对象。我根本不明白为什么需要
new
关键字(如果从构造函数返回非此
值,它实际上没有任何作用)。您的代码使用(少于(5))
。看,这两个地方都不要用新的,它应该能用。太棒了。我怎么没试过-D
function less(than) {
return new function (number, context) {
return number < than;
}
}