美文网首页
JS如何实现“函数重载”

JS如何实现“函数重载”

作者: 学的会的前端 | 来源:发表于2019-01-17 16:53 被阅读0次

函数的重载

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

JS中没有函数的重载

  • 原因: ECMAScript函数没有签名,因为其参数是由包含零或多个值的数组来表示的。没有函数签名,真正的重载就不可能实现。
  • 同名函数:如果定义了两个名字相同的函数,那么后面定义的函数会覆盖前面定义的函数。
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

相关文章

  • JS如何实现“函数重载”

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

  • JS实现函数重载

    重载 做过后端的,可能有函数重载的概念 但是在JavaScript中不存在重载,如果方法名一样的话,后面的会把前面...

  • 【jq源码探秘】— js如何实现实现重载

    大家都知道js是没有重载的,但是通过某种方式是可以实现的,下面就是jq的实现方式: 凭直觉,函数重载可以通过if…...

  • arguments

    js函数不能像传统意义上那样实现函数重载。所谓的函数重载就是:为一个函数编写两个定义,只要这两个定义的签名(接受的...

  • 2.解决js中没有函数重载问题

    在js中没有重载: 相同名称的函数,最后一次声明的函数会覆盖之前声明的函数 解决js中没有重载的问题: 1.解决参...

  • 如何实现JS中的重载

    1.JS由于不属于纯面向对象的语言,没有真正的重载,但是可以通过另外一些方法实现 重载,是指允许存在多个同名函数,...

  • JS知识点整理-3

    JS函数的重载 什么是重载? 方法名相同,参数不同 JS是否存在重载?--不存在,调用最后一个方法,把传递的参数保...

  • js函数重载

  • JS函数重载

    所谓函数重载(method overloading),就是函数名称一样,但是输入输出不一样。或者说,允许某个函数有...

  • c++ 运算符重载

    重载方法 运算符的重载实质上是函数的重载。函数的重载就是对一个已有函数赋予新的含义,使之实现新的功能。 重载运算符...

网友评论

      本文标题:JS如何实现“函数重载”

      本文链接:https://www.haomeiwen.com/subject/lhwidqtx.html