Javascript手册:`Array.prototype.includes()`vs.`Array.includes()`
新来的“noob”问题: Javascript在数组上有一个Javascript手册:`Array.prototype.includes()`vs.`Array.includes()`,javascript,documentation,Javascript,Documentation,新来的“noob”问题: Javascript在数组上有一个includes方法 它看起来像: Array.includes() 但当我去了解这种方法时,该页面上的标题(出于适当的技术原因,我意识到)是: Javascript手册中类似的内容让我一点也不喜欢该手册(唉,我对W3Schools的依赖比手册还多) 然而,我真的很想学习解释手册 因此,我的问题是:在文档中包含数组.prototype.includes()一词的意义是什么,而实际用法是:数组.includes()? (另外,如果有人对
includes
方法
它看起来像:
Array.includes()
但当我去了解这种方法时,该页面上的标题(出于适当的技术原因,我意识到)是:
Javascript手册中类似的内容让我一点也不喜欢该手册(唉,我对W3Schools的依赖比手册还多)
然而,我真的很想学习解释手册
因此,我的问题是:在文档中包含数组.prototype.includes()
一词的意义是什么,而实际用法是:数组.includes()
?
(另外,如果有人对我如何提高对官方Javascript手册的理解提出建议,我将不胜感激。)
因此,我的问题是:在文档中包含数组.prototype.includes()
一词的意义是什么,而实际用法是:数组.includes()
?
重要的是实际使用看起来不像是Array.includes()
:
Array.includes()代码>如果文档中提到Array.includes()
,您可以按如下方式键入它(示例):
相反,它说的是Array.prototype.includes()
,这意味着它不是在Array
类型本身上调用的,而是在它的实例上调用的。所以在这种情况下,你会写:
const numbers = [1, 2, 3];
numbers.includes(1);
JavaScript通常被描述为基于原型的语言,原型只是JavaScript中继承的工作方式
原型是什么意思
我们都同意JavaScript中几乎所有的东西都是对象(我说“几乎”,因为原语不是对象)酷吗?
好的,现在JS中的每个对象都有一个名为[[Prototype]]的内部属性,我所说的内部属性是指不能像访问JS对象的属性那样直接访问它
如果我们想知道我们创建的对象的原型,我们要么将对象的实例传递给对象.getPrototypeOf
,要么通过对象的\uuuu proto\uuu
属性
例如:
let myArray = [1,2,3,4];
console.log(myArray.__proto__)
// Expected output: Array []
如果您展开从上面的小代码片段中得到的结果对象,您将发现您所询问的includes方法,以及您在JS代码中创建的任何数组上可用的所有方法!
这是因为myArray和JavaScript中的所有数组都共享Array.prototype上定义的属性和方法
现在,如果您再次查看上面代码片段中生成的对象的方法,您将注意到一个名为构造函数的方法,它是在Array.prototype上定义的,就像includes和其他方法一样
这就是创建JavaScript数组对象实例时调用的函数
JavaScript数组对象是什么意思?
它是一个用于构建数组的全局JavaScript对象,它是Array.prototype.includes()中的数组(为了方便起见,您可以将其称为类,但在ES6发布之前,UUUUT类实际上并不存在……在此之前,JS中没有类)
因此,为了保持它的简单性和完整性,请将Array视为所有JS数组都是其实例的全局对象,并将Array。proto视为它的原型,它包装了所有实例共享的属性和方法
关于文档,能够阅读文档,并且对您所阅读的内容有相当的理解,这实际上是一件好事,所以我相信您很好 您可以将.prototype
看作意味着可以在数组实例上调用.includes()
方法。因此,如果您创建一个新数组,您可以对其使用.includes()
方法。如果未指定.prototype
,则该方法将充当“静态”方法,并可在数组类上调用。例如,将不起作用,但将起作用
const numbers = [1, 2, 3];
numbers.includes(1);
let myArray = [1,2,3,4];
console.log(myArray.__proto__)
// Expected output: Array []