对象的属性重复了,于是有了类和构造函数
class Person {nameagesayHi(){}constructor(name,age){this.name = namethis.age = age}}let person1 = new Person('frank', 18)let person2 = new Person('jack',23)
ts
class Person {sayHi(): void {}constructor(public name: string , public age: number){}}// public :这个对象有一个公开的属性 name,类型是stringlet person1 = new Person('frank', 18)let person2 = new Person('jack',23)

类
- 类总是把对象的属性提前写好,避免重复
- 类里面的字段会变成对象的属性
- 所有的函数都是公用的(person1和person2的sayHi 是同一个函数)
- 而非函数属性是各个对象自有的(person1的name和person2的name 是不一样的)
构造函数
- 属性名虽然可以提前写好,但是属性值不行
(name,age 作为key,可以提前写,value需要通过构造函数传入)
- 所以需要构造函数接受参数,初始化属性值
- 构造函数不需要写return,默认会return新对象
对象自有函数:
加个等号就可以了。(mySayHi)
class Person {nameagemySayHi = ()=>{} // 自用sayHi(){} // 共用constructor(name,age){this.name = namethis.age = age}}let person1 = new Person('frank', 18)let person2 = new Person('jack',23)
对象属性共有
class Person {static kind = '人类'}

