1. 原型式继承
2. 类式继承
3. Dean Edwards 的Base库进行简单对象创建与继承
// 为Person对象创建一个构造函数
function Person(name) {
this.name = name;
}
// 给Person对象添加一个新方法
Person.prototype.getName = function(){
return this.name;
};
// 创建一个新的User对象的构造函数
function User(name, password) {
this.name = name;
this.password = password;
}
// User对象继承所有Person对象的方法
User.prototype = new Person();
// 添加一个新方法到User对象中
User.prototype.getPassword = function(){
return this.password;
}
2. 类式继承
function Person(name) {
this.name = name;
}
// 给Person 对象添加一个新的方法
Person.method('getName', function(){
return name;
});
function User(name, password){
this.name = name;
this.password = password;
}
// 从Person对象继承所有方法
User.inherits(Person);
//给User对象添加一个新的方法
User.method('getPassword', function(){
return this.password;
});
// 覆盖Person对象创建的getName方法,但通过uber函数来调用原有方法
User.method('getName', function(){
return "My name is: " + this.uber('getName');
});
3. Dean Edwards 的Base库进行简单对象创建与继承
// 创建一个新的Person类
var Person = Base.extend({
// Person类的构造函数
constructor: function(name) {
this.name = name;
},
// Person类的一个简单方法
getName: function(){
return this.name;
}
});
// 创建一个新的继承自Person类的User类
var User = Person.extend({
// 创建User类的构造函数
constructor: function(name, password){
// 这个函数实际上调用了父类的构造函数
this.base(name);
this.password = password;
},
// 给User类提供了另一个简单的方法
getPassword: function(){
return this.password;
}
});