Javascript TypeError:无法使用array.includes将未定义或null转换为对象

Javascript TypeError:无法使用array.includes将未定义或null转换为对象,javascript,Javascript,我不明白为什么下面的代码会抛出TypeError:无法将未定义或null转换为object const array = [1, 2]; [3, 4].every(array.includes); 你没有把它绑起来 const array = [1, 2]; const r1 = [1, 2].every(array.includes.bind(array)); const r2 = [3, 4].every(array.includes.bind(array)); --编辑 上面的说法不

我不明白为什么下面的代码会抛出TypeError:无法将未定义或null转换为object

const array = [1, 2];

[3, 4].every(array.includes);
你没有把它绑起来

const array = [1, 2];

const r1 = [1, 2].every(array.includes.bind(array));
const r2 = [3, 4].every(array.includes.bind(array));
--编辑

上面的说法不正确,因为each回调将当前项的索引作为第二个参数,而array.includes将fromIndex作为第二个参数。感谢Nina Scholz的评论

你想要的是

[1,2].every(n => arr.includes(n));

您需要将函数传递给。每个函数都将当前元素作为参数:

[3, 4].every(element => array.includes(element));
常量数组=[1,2]; console.log [3,4]。everyelement=>array.IncludeElement ; console.log [1,2]。everyelement=>array.IncludeElement
;array.includes将返回一个函数。你想做什么?我想他想让array.includes返回一个函数看起来不错,但对不同顺序的项不起作用,因为includes有一个来自Index的第二个参数。我明白了。。因此抛出的TypeError中的对象引用了“this”。我不能像以前那样使用数组方法。我首先按照NullDev的建议做了,然后认为我的代码是一种简化。谢谢