一个函数执行,Fn(),函数是一个类,每个类都有prototype属性,指向当前类的原型,也就是Fn.prototype
原型是对象,每一个对象都有_proto_属性,指向创建当前对象的构造函数的原型
个人对上面的图的一些理解
- 我理解的,类就相对与是函数,所以每一个类都有prototype,指向原型,同时万物皆对象,当前类又是一个对象,所以也有_proto_属性,但是类首先是一个函数,然后才是对象,所以—proto—指向Function内置类的原型,也就是Function.prototype
- let F1=new Fn() ,Fn是类,是一个构造函数,F1是构造函数的实例,通过typeof可以知道F1是一个对象,所以有-proto-属性,指向构建了当前对象的构建函数的原型,也就是Fn.prototype
- 内置函数类Function是一个函数,所以有prototype,指向原型,指向Function.prototype, 但是他又是一个对象,不过他首先是一个函数,然后才是对象,所以指向构建函数的构造函数的原型,也就是Function内置类的原型,—proto—指向Function内置类的原型,也就是Function.prototype,
- 内置对象类同理,首先是一个函数,然后是对象,所以object内置类指向Function内置类的原型,也就是Function.prototype,
- Function.prototype是一个对象,所以—proto—指向构建当前对象的构造对象的原型,构建对象的构造函数,就是Object内置对象类,Object.prototype
- 我们用到了一个方法或者属性,先在私有属性,然后再去顺着-proto-往上级原型找,一直找到最外层的object内置类的原型为止,这个就是原型链查找机制