1、函数类型
注意:Function.prototype是一个函数,不是对象
2、函数执行的作用域
3、Fn分析
构建实例分析
Object分析
4、prototype:原型、显示原型
--proto-- :原型链、隐式原型
5、对象类型
6、原型的作用:存储供其实例调用的方法和属性
7、原型链查找机制
Fn.prototype是一个对象,它是浏览器为我们默认设置的一个堆内存,它也是一个对象,它是Object的一个实例,所以它的下划线proto会指向Object.prototype 但是 Object.prototype的下划线proto指向的就是null,为了防止死循环
8、整张图片
9、面试让你说对原型和原型链的理解?
(1)原型 每个函数(除了箭头函数和快捷定义的函数)都带有一个prototype 属性,这是属性是指向构造函数的原型对象,这个对象包含所有实例共享的属性和方法。
原型对象都有一个constructor 属性,这个属性指向所关联的构造函数。
每个对象都有一个__proto__ 属性[非标准的方法],这个属性指向实例所属构造函数的原型 prototype
(2)原型链
当访问实例对象的某个属性时,会先在这个对象本身的属性上查找,如果没有找到,则会通过 proto 属性去原型上查找,如果还没有 找到则会在构造函数的原型的__ proto__中查找, 这样一层层向上查找就会形成一个作用域链,称为原型链;