在构造函数内使用call()或apply()实现继承

在构造函数内使用call()或apply()实现继承
此法不能继承原型属性或方法,因此 b.pa 的值不存在。如果想继承 A 的原型属性或方法该怎么办呢?用typescript写两个类 A 和 B,并且 B extends A,然后用 tsc 将 typescript 文件编译成 javascript 文件。打开 js 文件发现原型继承是用__extends(B, A)实现的。关键在于__extends()函数

function A(x){
    this.x = x;
}
A.prototype.pa = 'pa';

function B(x, y){
    A.apply(this, arguments);
    this.y = y;
}
B.prototype.pb = 'pb';

var b = new B(1, 2);
console.log(b.x, b.y, b.pa, b.pb);    // 1 2 undefined "pb"
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
48
粉丝
15
喜欢
126
收藏
103
排名:134
访问:3.7 万
私信
所有博文