函数重载

140 阅读1分钟

创建对象

  创建对象一共做了三件事
  第一件事: 在堆中为类的某个对象【实例】分配一个空间
  第二件事:调用对应的构造函数【构造器】并且把构造器中的各个参数值赋值给对象属性
  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.重载的实现必须有,实现有的重载要给默认值