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)。
那是为什么? Array对象上的特殊“包含”功能是什么?
对不起,我正在看我的网站上有polyfills。
但是,我不确定所建议的重复项是否相关。
答案 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