JS-Object 原型式继承

如何创建一个继承自另一个对象的JavaScript对象呢?

  1. 定义一个只定义了一些属性的Person构造器
function Person(first, last, age, gender, interests){
  this.name = {
    first,
    last
  };
  this.age = age;
  this.gender = gender;
  this.interests = interest;
}
  1. 所有方法都定义在构造器的prototype属性上。
Person.prototype.greeting = function(){
  alert('Hi! I \'m ' + this.name.first + '.');
}
  1. 创建一个Teacher类,这个类会继承Person的所有成员,同时页包括:
    • 一个新的属性,subject--这个属性包含了教师教授的科目
    • 一个被更新的greeting()方法,这个方法打招呼听起来比一般的greeting()更正式一点。
function Teacher(first, last, age, gender, interests, subject){
  Person.call(this, first, last, age, gender, interests);
  this.subject = subject;
}
  1. Teacher() 从Person()的原型对象里继承方法:
    Teacher.prototype = Object.create(Person.prototype);
    现在Teacher()prototypeconstructor属性指向的是Person().
  2. 这或许会造成很大的问题,所以我们需要将其正确的设置--在底下加上一行代码来解决:
    Teacher.prototype.constructor = Teacher;

你可能感兴趣的:(JS-Object 原型式继承)