-
①是对象的共有属性, 即__proto__
-
因为一切皆对象,所以数组、函数等数据类型的共有属性,即②、③、④、⑤等,他们的共有属性为①。
如:
func.__ proto__ == ② ②.__ proto__ == ①
[].__ proto__ == ③ ③.__ proto__ == ① -
Object、Function、Array、Number…这些都是函数,所以他们的__ proto__为②;
同时他们也是创造数组、函数等数据类型的方法;
可以理解为 Function 使用了 ② 创建了 func,即Function.prototype == func.__ proto__== ②(其他同理)
prototype可以理解为:他会使用哪个共有属性(__ proto__)创建数据 -
⑧ 这条线有一些特殊,因为func也能够创建一个对象,我认为开发者在写这个逻辑的时候一开始是有两条思路的;
一条是:既然func也能够创建一个对象,那么他创建时,同样使用①创建一个对象
另一条是:新建一个共有属性,即:⑧,然后用⑧创建一个对象
根据我的测试,第二条思路是正确的
原型链图解
最新推荐文章于 2024-07-26 15:43:04 发布