JS中为什么没有函数重载-创新互联
这篇文章主要介绍“JS中为什么没有函数重载”,在日常操作中,相信很多人在JS中为什么没有函数重载问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JS中为什么没有函数重载”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、成都网站建设、襄汾网络推广、重庆小程序开发公司、襄汾网络营销、襄汾企业策划、襄汾品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;创新互联为所有大学生创业者提供襄汾建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表(参数个数、类型、顺序)的函数,这组函数被称为重载函数。重载函数通常用来声明一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。
但是在JS如果不通过一些方法是无法实现重载的,可以从以下两个角度去理解。
方法签名指的是函数的名称加形参列表,并且通过函数的名称或者形参列表都可以区分出是不同的函数。
JS中通过形参是没有办法区分出不同的函数的,只能通过函数的名称区分出不同的函数。
上述实际上是一个函数,后面的函数add会覆盖前面的函数,究其原因还是因为JS是弱类型的语言,a和b实际上都是用var声明的,等价于
所以在JS中只能通过函数名称来辨别是不是同一个函数,形参是没有用的。
但是在强类型的语言中就是可以的,例如在c语言中,定义函数时形参必须要指定类型,向里面传值的时候也必须传递指定类型的值。函数名相同,形参名不同的函数也会被认为是不同的函数。
所以,在C语言这种强类型的语言中是可以实现函数重载的,JS这种弱类型的语言是不可以的。
函数指针
另一中理解的角度是可以将函数名想象为指针,函数名中存放的是函数体存放的地址。
最终add实际上指向的是第二个函数,第一个函数被覆盖了,所以最终调用add时调用的也是第二个函数,并不能实现函数的重载。
到此,关于“JS中为什么没有函数重载”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!
文章标题:JS中为什么没有函数重载-创新互联
地址分享:http://scyanting.com/article/dejsho.html