javascript的原型链问题

在js中,由于没有类这个概念(Es6以下),js采用了原型继承的方式来描述实例对象的行为。用作描述这种行为的对象,称为原型对象(prototype)。

与继承相关的有三个属性,

1.prototype,默认所有函数对象都会带有的属性,即当一个函数被当做构造函数实例化一个对象时,那么这个函数就被称为这个实例对象的原型对象prototype;

2.constructor,用于生成实例化对象的构造函数;

3.__proto__用于指向创建他的构造函数的原型对象,在浏览器实现中使用了__proto__属性缓存原型对象,所有对象都拥有这个属性。因此,通过__proto__便能实现 向上查找,整个查找过程路径就构成了原型链(子->父->继续查找根原型对象,即Object.prototype.__proto__=null)。

原型链指的是对象与原型对象之间的关系,又可以称为对象链

例:

function Person(){

}

var person1 = new Person();

javascript的原型链问题