
根据图像(图像取自凯尔辛普森的书“这和对象原型”)
每个函数原型都有一个与Object.prototype.
)
我不明白谁是父级的对象还是函数。根据图像函数,是最基本的。
发布于 2020-11-07 09:45:07
当你说“最父母”的时候,我会假设你在问:这张图片中最上面的东西是什么?其他的东西都是从哪来的?例如,“根”对象。
该图像中最接近根对象的对象是Object.prototype指向的对象,位于右上角。这是图像中显示的继承层次结构的根对象。
该对象是Function.prototype的原型,它是函数对象,默认情况下用作所有其他函数的原型,包括Function函数、Object函数等等(可以使用其他原型--派生的class构造函数是一个示例--甚至没有原型,但默认情况下,一个函数以Function.prototype为原型)。
列出你的名单:
每个函数原型都有一个与Object.prototype.链接(或使用原型继承的inheritin )的原型。
所谓“每个函数原型”,我认为您是指“每个函数的prototype属性上的对象”。默认情况下,对于具有prototype属性的函数是这样的(例如,不是所有函数都是这样;箭头函数不是这样),但是prototype只是一个属性,可以更改它。
这是真的,但并不是真的相关。(详见下文)
Object有一个prototype属性与它继承Function的原型无关,它与规范中定义Object函数的方式有关,说明它有一个引用根对象原型的prototype属性。
这是真的,但也没有真正的相关性。
函数的constructor属性所引用的对象上的prototype属性很少被JavaScript本身使用。(直到才开始使用,直到ES2015。)例如,它不涉及继承的工作。由于ES2015在一些地方被用于创建与其他对象相同的子类的新对象,例如当Array.prototype.slice创建一个新数组时,它使用源数组的constructor属性来创建新的数组。
https://stackoverflow.com/questions/64726242
复制相似问题