javascript的原型链问题
在js中,由于没有类这个概念(Es6以下),js采用了原型继承的方式来描述实例对象的行为。用作描述这种行为的对象,称为原型对象(prototype)。
与继承相关的有三个属性,
1.prototype,默认所有函数对象都会带有的属性,即当一个函数被当做构造函数实例化一个对象时,那么这个函数就被称为这个实例对象的原型对象prototype;
2.constructor,用于生成实例化对象的构造函数;
3.__proto__用于指向创建他的构造函数的原型对象,在浏览器实现中使用了__proto__属性缓存原型对象,所有对象都拥有这个属性。因此,通过__proto__便能实现 向上查找,整个查找过程路径就构成了原型链(子->父->继续查找根原型对象,即Object.prototype.__proto__=null)。
原型链指的是对象与原型对象之间的关系,又可以称为对象链
例:
function Person(){
}
var person1 = new Person();