js的继承是实现继承,是通过原型链实现的。首先我们知道每个函数的实例都有一个指向该函数原型的指针,当我们让子类的原型等于父类的实例时会发生什么 呢?
Studeng.prototype = new Person();我们都知道原型是可以共享的,继承就是为了让子类所有对象实现父类的属性和方法,所以等号左边是子类的原型,当等于父类的实例时,就可以找到通往父类原型的路,这时新原型拥有父类实例所有的属性和方法,这就是原型链,子类实例→子类原型→父类原型,当然我们为了避免原型的缺点共享性,可以再子类构造函数中调用父类方法Person.call(this),这时就会为每个子类对象分配相应的属性(这个前提父类的构造函数定义属性哦才能避免引用类型共享问题)
原文地址:http://blog.csdn.net/zerofine/article/details/39155891