javascript - Javascript 手册:`Array.prototype.includes()` 与 `Array.includes()`
问题描述
传入的“菜鸟”问题:
Javascriptincludes
在数组上有一个方法。
看起来像:
Array.includes()
但是当我去Javascript Manual来理解这个方法时,那个页面上的标题(出于适当的技术原因,我意识到)是:
Array.prototype.includes()
Javascript 手册中的类似内容导致我根本不喜欢该手册(唉,我更依赖 W3Schools 而不是手册)。
但是,我真的很想学习解释手册。
所以,我的问题是:当实际用法看起来像这样时,在文档中包含这个词有什么意义: ?.prototype
Array.prototype.includes()
Array.includes()
(另外,如果有人对我如何提高对官方 Javascript 手册的理解有任何建议,我将不胜感激。)
解决方案
所以,我的问题是:当实际用法看起来像这样时,在文档中包含这个词有什么意义: ?
.prototype
Array.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
上定义的,而不是在原型上进行比较:Array
Array
console.log(Array.from);
你可以像这样使用它:
console.log(Array.from({ length: 10 }, (_, num) => num << 2));