ES5:
function Person(name){
this.name=name;
this.run = function () {
alert(this.name + ' es5!')
}
}
var p=new Person('张三');
p.run()
Typescript:
class Person {
name:string; // 属性 前面省略了public关键词
// 构造方法
constructor (n:string) { // 构造函数 实例化类的时候触发的方法
this.name = n
}
// 实例方法
run():void {
alert(this.name + ' typescript!')
}
}
var p=new Person('张三');
p.run()
参数传递/赋值:
class Person {
name:string;
getName():string {
return this.name
}
setName(name:string):void {
console.log(name)
}
}
继承 (super):
class Person {
name:string; age:number;
contructor (name:string, age:number) {
this.name = name; this.age = age
}
run():string {
return `${this.name} is ${this.age}`
}
}
class Boy extends Person {
contructor (name:string, age:number) {
super(name, age)
}
}
var b = new Boy('Tom', 20)
b.run()
参数 修饰符 (public、protected、private)
public // 公有 在当前类里面、 子类 、类外面都可以访问
protected // 保护类型 在当前类里面、子类里面可以访问 ,在类外部没法访问
private // 私有 在当前类里面可以访问,子类、类外部都没法访问
// 属性如果不加修饰符 默认就是 公有 (public)
static // 静态方法/属性
多态
父类定义一个方法不去实现,让继承它的子类去实现
每一个子类有不同的表现
多态属于继承
欢迎技术指正与交流,转载请注明出处
https://www.imure.cn/2019/10/25/Typescript-Class/