Javascript Array.includes vs Array.prototype.includes

Javascript Array.includes vs Array.prototype.includes,javascript,arrays,Javascript,Arrays,Array.includes和Array.prototype.includes之间有什么区别 考虑以下代码: var x = [1,2,3]; var arrayIncludes = Array.includes.bind(x); var protoIncludes = Array.prototype.includes.bind(x); 对arrayIncludes的任何调用(例如,arrayIncludes(2))都返回false。 调用protoIncludes返回正确的结果(例如,pro

Array.includes
Array.prototype.includes
之间有什么区别

考虑以下代码:

var x = [1,2,3];
var arrayIncludes = Array.includes.bind(x);
var protoIncludes = Array.prototype.includes.bind(x);
对arrayIncludes的任何调用(例如,
arrayIncludes(2)
)都返回false。 调用protoIncludes返回正确的结果(例如,
protoIncludes(2)
返回true)

为什么呢?数组对象上的这个特殊“包含”函数是什么

编辑 我在看我的网站,有polyfills,对不起


但是,我不确定任何建议的副本是否相关。

Array.prototype.includes
意味着
includes
是数组原型的一种方法,它意味着数组的每个实例(例如
x=[1,2,3]
)都可以调用它。例如:

var x = [1, 2, 3];
x.includes(2);  // returns true
但是数组类本身没有include方法(这个方法是在它的原型中定义的,而不是数组构造函数),所以数组没有这个方法在以后调用它

console.log(Array.includes);  // prints undefined

数组。包含
给出
未定义的
。你的那个是怎么工作的?看起来你走了一条很奇怪的路。是时候从那里回来了。所有这些都没有多大意义