JScript的两种继承机制的实现

 
JScript的继承可以通过两种方式来实现,一种是通过对象的prototype属性,一种是通过call函数。第一种方式同时也适用于Javascript,第二种方式只适用于JScript。
 
下面的例子是用prototype实现的继承:
 
var Person = function() {
    this.name = "Person";
}
var _p = Person.prototype;
_p.getName = function() {
    return this.name;
}
_p.setName = function(name) {
    this.name = name;
}
var Jeffrey = function() {
    this.name = "Jeffrey";
    this.say = function(word) {
        alert(word);
    }
}
_p = Jeffrey.prototype = new Person();//实现继承
_p.say = function(word) {
    alert(word);
}
 
通过下面的代码进行测试:
 
var jeffrey = new Jeffrey();
alert(jeffrey.getName());//调用父对象定义的方法
jeffrey.setName("Jeffrey He");//调用父对象定义的方法
alert(jeffrey.getName());
jeffrey.say("Hello");
 
再看看用call函数实现的例子:
function Person() {
    this.name = "Person";
    this.getName = function() {
        return this.name;
    }
    this.setName = function(name) {
        this.name = name;
    }
}
 
function Jeffrey() {
    Person.call(this);//实现继承
    this.name = "Jeffrey";
    this.say = function(word) {
        alert(word);
    }
}
 
测试代码同上。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值