Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.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 - Fatal编程技术网

Javascript 如何在此函数中传递参数?

Javascript 如何在此函数中传递参数?,javascript,Javascript,进行课本练习,其中: let arr = [1, 2, 3, 4, 5, 6, 7]; function inBetween(a, b) { return function(x) { return x >= a && x <= b; }; } alert( arr.filter(inBetween(3, 6)) ); // 3,4,5,6 所以我不完全理解(a,b)函数之间的是如何工作的。。。就像这一行: arr.filter(inBetween

进行课本练习,其中:

let arr = [1, 2, 3, 4, 5, 6, 7];

function inBetween(a, b) {
  return function(x) {
    return x >= a && x <= b;
  };
}

alert( arr.filter(inBetween(3, 6)) ); // 3,4,5,6
所以我不完全理解(a,b)函数之间的
是如何工作的。。。就像这一行:

arr.filter(inBetween(3,6))

在我看来,
a
参数,
b
索引
参数中,但显然它不是这样工作的。。。有人能分析一下这种语法吗?它为什么工作?

a
b
3
6
之间的
范围内定义,并在返回的匿名函数中引用,该函数是
.filter()
的回调,如所示,
x
是回调函数中的
item
,因此filter方法接受一个应该返回true或false的函数,不管是否保留该项

在本例中,该函数不是在过滤器内部写入,而是在外部写入并传入。但是你仍然可以这样想:

let results = arr.filter(function(item, index, array) {
    return item >= 3 && item <= 6;
});
如上所述,然后将其放入过滤器中(只是不带
索引/数组
参数,因为不需要它们:

let results = arr.filter(function(x) {
    return x >= 3 && x <= 6;
});
let results=arr.filter(函数(x){

return x>=3&&x
x
参数。
inBetween
返回一个用于过滤器的函数。
inBetween
是一个高阶函数。调用时返回一个函数。另请参阅
function(x) {
    return x >= 3 && x <= 6;
}
let results = arr.filter(function(x) {
    return x >= 3 && x <= 6;
});