1、每个函数 function 都有一个 prototype ,即显式原型(属性)
2、每个实例对象都有一个 __proto__ ,可称为隐式原型(属性)
3、对象的隐式原型的值为其对应构造函数的显式原型的值
4、总结:
① 函数的 prototype 属性:在定义函数时自动添加的,默认值是一个空 Object 对象
② 对象的 __proto__ 属性:创建对象时自动添加的,默认值为构造函数的 prototype 属性值
③ 程序员能直接操作显示原型,但不能直接操作隐式原型(ES6之前)
5、原型对象里面有个 constructor 属性指向的是构造函数
6、函数里面有个 prototype 属性指向原型对象
7、实例化对象里面有个 __proto__ 属性也指向原型对象,且与构造函数的原型对象是同一个
本文分享到这里,欢迎大家评论区相互讨论学习,下一篇继续分享JavaScript高级学习中的原型链的内容。