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