Array.includes和Array.prototype.includes

时间:2018-07-22 13:02:49

标签: javascript arrays

Array.includesArray.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)。

那是为什么? Array对象上的特殊“包含”功能是什么?

编辑

对不起,我正在看我的网站上有polyfills。

但是,我不确定所建议的重复项是否相关。

1 个答案:

答案 0 :(得分:3)

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

var x = [1, 2, 3];
x.includes(2);  // returns true

但是Array类本身没有include方法(此方法是在其原型中定义的,而不是在Array构造函数中定义的),因此Array没有此方法可在以后调用它。

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