JS继承

1. 原型式继承

// 为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;
}
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值