Javascript 什么时候将可选参数thisArg用于过滤器原型?

Javascript 什么时候将可选参数thisArg用于过滤器原型?,javascript,Javascript,var new\u array=arr.filter(回调[,thisArg]) 据我所知,可选参数thisArg只会更改正在调用过滤器的数组 似乎: arr.filter(callback, arr2); 相当于: arr2.filter(callback) 这个有什么用吗?为什么它是一个选项?它是回调中的值,而不是数组。也许唯一有用的实际案例是: arr.filter(obj.fn.bind(obj)) === arr.filter(obj.fn, obj) 它不会更改数组的内容,而是

var new\u array=arr.filter(回调[,thisArg])

据我所知,可选参数thisArg只会更改正在调用过滤器的数组

似乎:

arr.filter(callback, arr2);
相当于:

arr2.filter(callback)

这个有什么用吗?为什么它是一个选项?

它是回调中的
值,而不是数组。也许唯一有用的实际案例是:

arr.filter(obj.fn.bind(obj)) === arr.filter(obj.fn, obj)

它不会更改数组的内容,而是更改回调函数中
this
的值。只有在回调中使用此
时,此功能才有用

在本例中,它用于动态更改过滤的内容

函数myFilter(e){
返回e==this.val;
}
var-arr=[1,1,1,2,2];
log(arr.filter(myFilter,{val:1}));
log(arr.filter(myFilter,{val:2}))

我看这个的好方法是看一个问题


编写一个以数组和数字作为第二个参数的函数,如果在数组中找到第二个参数,则返回第二个参数;如果没有,则返回未定义的参数。

回调中的
值,而不是数组。回调是什么?我很好奇你做了什么,得出了它们相等的结论。也许它会揭示出其他一些可以更好地回答你问题的可教的时刻。我没有回调的具体实现,我只是想了解thisArg是如何使用的,并且错误地假设它改变了
this
的数组值。这个用例是什么?我不知道
fn
obj
中为什么重要。你真的应该多解释一下。
function find(arr, searchValue) {
return arr.filter(function(val){
    return val === searchValue;
})[0];}

let newArray = arr.filter(callback(currentValue[, index, [array]]) { return element for newArray, if true }[, thisArg]);
find([1,2,3,4,5], 3) // 3
find([1,2,3,4,5], 10) // undefined