Javascript 手册:`Array.prototype.includes()` 与 `Array.includes()`

tha*_*nce 3 javascript documentation

传入的“菜鸟”问题:

Javascript 有一个includes数组方法。

看起来像:

Array.includes()
Run Code Online (Sandbox Code Playgroud)

但是,当我转到Javascript 手册来了解此方法时,该页面上的标题(我意识到出于适当的技术原因)是:

Array.prototype.includes()
Run Code Online (Sandbox Code Playgroud)

Javascript 手册中的类似内容导致我根本不喜欢该手册(唉,我比手册更依赖 W3Schools)。

不过,我真的很想学习解读手册。

所以,我的问题是:当实际用法如下所示时,在文档中包含单词.prototypein的意义是什么?Array.prototype.includes()Array.includes()

(另外,如果有人对我如何提高对官方 Javascript 手册的理解有任何建议,我将不胜感激。)

Jör*_*tag 5

所以,我的问题是:当实际用法如下所示时,在文档中包含单词.prototypein的意义是什么?Array.prototype.includes()Array.includes()

意义在于实际使用情况并不Array.includes()

这会抛出一个,TypeError: Array.includes is not a function因为Array.includes 不存在。访问不存在的属性的计算结果为undefined,因此Array.includes计算结果为undefined,因此Array.includes()尝试undefined像函数一样进行调用。

您可以在这里看到它的实际效果:

console.log(Array.includes);

undefined();
Run Code Online (Sandbox Code Playgroud)

includes()方法是在全局对象的原型Array上定义的,以便您可以在以下实例Array上调用它:

你可以看到这[].includes是一个函数:

console.log([].includes);
Run Code Online (Sandbox Code Playgroud)

将其与构造函数Array.from上定义的而不是原型上定义的进行比较:ArrayArray

你可以这样使用它:

console.log(Array.from({ length: 10 }, (_, num) => num << 2));
Run Code Online (Sandbox Code Playgroud)