原型关系:
每个class都有显示原型prototype
每个实例都有隐式原型_proto_
实例的_proto_指向对应class的prototype
原型:在js中,每当定义一个对象(函数也是对象)时,对象中都会包含一些预定义的属性。其中每个函数对象都有一个prototype属性,这个属性指向函数的原型对象。
原型链:函数的原型链对象constructor默认指向函数本身,原型对象除了有原型属性外,为了实现继承,还有一个原型链指针_proto_,该指针是指向上一层的原型对象,而上一层的原型对象的结构依然类似。因此可以利用_proto_一直指向object的原型对象上,而object原型对象用object.prototype._proto_ = null表示原型链顶端。如此形成了js原型链的继承。同时所有的js对象都有object的基本防范。
特点:JavaScript对象是通过引用来传递的,我们创建的每一个新对象实体中并没有一份属于自己的原型副本。当我们修改原型时,与之相关的对象也会继承这一改变。