构造函数的属性继承:借用构造函数
function Person (name, age) {this.type = 'human'this.name = namethis.age = age}function Student (name, age) {// 借用构造函数继承属性成员Person.call(this, name, age)}var s1 = Student('张三', 18)console.log(s1.type, s1.name, s1.age) // => human 张三 18
构造函数的原型方法继承:拷贝继承(for-in)
function Person (name, age) {this.type = 'human'this.name = namethis.age = age}Person.prototype.sayName = function () {console.log('hello ' + this.name)}function Student (name, age) {Person.call(this, name, age)}// 原型对象拷贝继承原型对象成员for(var key in Person.prototype) {Student.prototype[key] = Person.prototype[key]}var s1 = Student('张三', 18)s1.sayName() // => hello 张三
