es6实例属性新写法: 实例属性除了定义在constructor()方法里面的this上面,也可以定义在类的最顶层,与方法处于同一层级,前面不需要加this。新写法的好处是,所有实例对象自身的属性都定义在类的头部,看上去比较整齐,一眼就能看出这个类有哪些实例属性,且ts类型检查不会报错。
// 旧写法
class Observer {
constructor(id: string) {
this.id = id
}
update(sub) {
console.log(`被观察者 ${sub.id}变化了`);
}
}
// 新写法
class Observer {
id: string
constructor(id: string) {
this.id = id
}
update(sub) {
console.log(`被观察者 ${sub.id}变化了`);
}
}