首页 > 解决方案 > Javascript 手册:`Array.prototype.includes()` 与 `Array.includes()`

问题描述

传入的“菜鸟”问题:

Javascriptincludes在数组上有一个方法。

看起来像:

Array.includes()

但是当我去Javascript Manual来理解这个方法时,那个页面上的标题(出于适当的技术原因,我意识到)是:

Array.prototype.includes()

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

但是,我真的很想学习解释手册。

所以,我的问题是:当实际用法看起来像这样时,在文档包含这个词有什么意义: ?.prototypeArray.prototype.includes()Array.includes()

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

标签: javascriptdocumentation

解决方案


所以,我的问题是:当实际用法看起来像这样时,在文档包含这个词有什么意义: ?.prototypeArray.prototype.includes()Array.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();

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

[].includes();

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

console.log([].includes);

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

console.log(Array.from);

你可以像这样使用它:

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


推荐阅读