JS如何实现“函数重载”

2019-01-17  本文已影响0人  学的会的前端

函数的重载

在强类型语言中,可以为一个函数编写两个定义,只要这两个定义的签名(接受的参数的类型和数量)不同即可,即可实现函数的重载

JS中没有函数的重载

function addSomeNumber(num){
    console.log (num + 100);
}
function addSomeNumber(num){
    console.log(num + 200);
}
addSomeNumber(100);
//console.log 的值是300
  1. 由于后定义的函数覆盖了先定义的函数,因此当在最后一行代码中调用这个函数时,console.log的结果就是300.
  2. 也可以这样理解
var addSomeNumber = function (num) {
  console.log (num + 100);
}
var addSomeNumber = function (num) {
  console.log (num + 200);
}
var result = addSomeNumber(100);  // 300

在创建第二个函数时,实际上覆盖了引用第一个函数的变量addSomeNumber

实现类重载的方法:

通过查看传入函数中参数的类型和数量并作出不同的反应,模拟方法的重载。

function printPeopleInfo(name, age, sex){
    if(name){
      console.log(name);
    }
    if(age){
      console.log(age);
    }

    if(sex){
      console.log(sex);
    }
  }
  printPeopleInfo('Byron', 26);
  printPeopleInfo('Byron', 26, 'male'); 
1.png
上一篇 下一篇

猜你喜欢

热点阅读