【javascript】对原型对象、原型链的理解
原型对象,原型链这些知识属于基础类知识。但是平时开发过程中也很少用到。
看网上的意思,原型链用于es5开发场景下的继承。es6有了类语法糖之后,就自带继承了。
通过理解,个人画了一张原型链解构的关系图:
可以看出:
从构造函数F开始
new 构造函数F就是实例对象f(var f=new F())
构造函数F.prototype就是F的原型对象(F.prototype==F原型对象)
F原型对象.constructor就是构造函数F(F.prototype.constructor==F)
F原型对象.__proto__是Object的原型对象(F.prototype.__proto__==Object.prototype)
实例对象f.__proto__是F原型对象(f.__proto__==F.prototype)
Object的原型对象就是null(终结)
场景1:
无此私有属性:
原型添加属性后,f.a将会有值。不加的话,如果构造函数中不设置该属性,就是undefined
有此私有属性:
如果设置了私有属性就用不到了
场景2:
构造函数中无方法,原型对象中有方法,便可调用之
博客园作者:herry菌朋友,看到这里,关注作者的公众号吧,不漏掉更新哦