创建对象
创建对象一共做了三件事
第一件事: 在堆中为类的某个对象【实例】分配一个空间
第二件事:调用对应的构造函数【构造器】并且把构造器中的各个参数值赋值给对象属性
new Person()自动匹配无参数的构造器
第三件事:把对象赋值给对象变量 【把实例赋值给实例变量】
重载
适用于完成项目的某种相同功能,细节不同的应用场景
function getMessages(val:number):Message//重载签名
function getMessages(val:MessageType,read:number):Message[]//重载签名
function getMessages(val:any,read:number = 1): Message | undefined | Message[] {//实现签名
if (typeof val === "number") {
return messages.find(i => i.id === val)
} else {
return messages.filter(i => i.type === val).splice(0,read)
}
}
由上述代码可见 函数重载可以用于传参相同,类型不同的函数,根据参数执行不同的功能。
规则
1.一个实现签名+多个重载签名
2.执行函数是对应的重载+函数体
3.重载的实现必须有,实现有的重载要给默认值