Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript在该上下文中返回新函数_Javascript_This_Factory - Fatal编程技术网

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;
    }
}