面向对象基础知识(原型和原型链处理机制)

63 阅读1分钟

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__中查找, 这样一层层向上查找就会形成一个作用域链,称为原型链;