Js用函数来表示类,函数默认带有保留属性prototype,prototype中定义了类的原型成员。
通过new调用函数实例化对象
对象包含实例成员和原型成员, __proto__属性指向所继承的类的原型(就是父级的原型)。
对象通过.添加或修改实例成员
也可以给原型添加或修改成员
因为__proto__指向的是父级的原型,那么可以通过__proto__一直追踪整个原型链,从而调用原型链中的成员。
看下已实例化的对象是如何调用内部成员的。
1、首先从实例成员中查找,找不到继续。
2、通过__proto__属性,从原型链中查找,找不到继续。
3、通过__proto__.__proto__继续向父级查找,直到原型链结束。