首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谁是JS (对象或函数)中最亲的实体?

谁是JS (对象或函数)中最亲的实体?
EN

Stack Overflow用户
提问于 2020-11-07 09:29:19
回答 1查看 78关注 0票数 0

根据图像(图像取自凯尔辛普森的书“这和对象原型”)

每个函数原型都有一个与Object.prototype.

  • Object.prototype链接的原型(或者使用原型继承的inheritin ),它有一个属性,即指向对象的构造函数。

  • 对象甚至有一个原型属性(这意味着它也继承了函数的prototype).

  • Function原型,它具有指向函数的构造函数属性。

)

我不明白谁是父级的对象还是函数。根据图像函数,是最基本的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-07 09:45:07

当你说“最父母”的时候,我会假设你在问:这张图片中最上面的东西是什么?其他的东西都是从哪来的?例如,“根”对象。

该图像中最接近根对象的对象是Object.prototype指向的对象,位于右上角。这是图像中显示的继承层次结构的根对象。

该对象是Function.prototype的原型,它是函数对象,默认情况下用作所有其他函数的原型,包括Function函数、Object函数等等(可以使用其他原型--派生的class构造函数是一个示例--甚至没有原型,但默认情况下,一个函数以Function.prototype为原型)。

列出你的名单:

每个函数原型都有一个与Object.prototype.链接(或使用原型继承的inheritin )的原型。

所谓“每个函数原型”,我认为您是指“每个函数的prototype属性上的对象”。默认情况下,对于具有prototype属性的函数是这样的(例如,不是所有函数都是这样;箭头函数不是这样),但是prototype只是一个属性,可以更改它。

  1. Object.prototype有一个属性,即指向对象的构造函数.

这是真的,但并不是真的相关。(详见下文)

  1. 对象甚至具有prototype属性(这意味着它也继承了函数的原型)。

Object有一个prototype属性与它继承Function的原型无关,它与规范中定义Object函数的方式有关,说明它有一个引用根对象原型的prototype属性。

  1. 函数原型具有指向函数的构造函数属性.

这是真的,但也没有真正的相关性。

函数的constructor属性所引用的对象上的prototype属性很少被JavaScript本身使用。(直到才开始使用,直到ES2015。)例如,它不涉及继承的工作。由于ES2015在一些地方被用于创建与其他对象相同的子类的新对象,例如当Array.prototype.slice创建一个新数组时,它使用源数组的constructor属性来创建新的数组。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64726242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档