# 原型和原型链
# 前置知识
- constructor构造函数:
- prototype原型对象:
- _ _ proto _ _隐式原型:
- new 关键字做了什么
是什么【本质】
每一个函数都会有一个原型对象,函数通过prototype
来指向原型对象
。【注意null和箭头函数没有】。
为什么【作用】
这个原型对象用来保留函数对象的一些公共方法和属性,以达到属性和方法的复用。
提示
JavaScript就是通过原型链来达到继承的
怎么做【原理】
构造函数在实例化对象的时候,会将实例的对象的隐式原型对象 _ _ proto _ _指向,实例对象的构造函数constructor的原型对象prototype。注意:Function构造函数也是Object构造函数的实例对象,所以他也继承object的原型对象。当函数在访问属性和方法时,会通过_ _ proto _ _ 去找,如果没有就找_ _ proto _ _ 的 _ _ proto _ _ ,如此反复,当找到最后一个指向null对象还没有就是,那返回undefined。这个 _ _ proto _ _的指向,形成了原型链。
← 作用域和作用域链 Cookie有哪些属性 →