学习javascript也有一段时间了,打算从今天开始记录自己的一些理解。
此篇文章主要是记录自己对Typescript在编译成es5的代码时如何实现继承的理解。
首先是测试代码
class Sup {
public static staticProp = "静态属性";
public instanceProp = "实例属性";
public foo(): string {
return "原型方法";
}
}
class Sub extends Sup {
public constructor() {
super();
}
}
let subObj = new Sub();
console.log(Sub.staticProp);
console.log(subObj.instanceProp);
console.log(subObj.foo());
执行结果如下,可以看到,子类成功继承了父类的静态成员和实例成员,其中父类的foo方法在编译成es5代码后是绑定到Sup构造函数的prototype属性上的。
编译出来es5代码如下
var __extends = (this &&