【问题标题】:Array.includes vs Array.prototype.includes [duplicate]Array.includes vs Array.prototype.includes [重复]
【发布时间】:2018-07-22 13:02:48
【问题描述】:

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 对象上的这个特殊“包含”函数是什么?

编辑

抱歉,我正在查看包含 polyfill 的网站。

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

【问题讨论】:

标签: javascript arrays


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-24
    • 2019-05-24
    • 2011-02-07
    • 2012-09-17
    • 2011-03-29
    • 2011-05-18
    • 2018-08-01
    • 2015-11-15
    相关资源
    最近更新 更多