JavaScript的函数支持重载吗?
来源:互联网 发布:网络小说家怎么赚钱 编辑:程序博客网 时间:2024/06/08 03:05
JavaScript的函数支持重载吗?
JavaScript的函数支持重载吗?对于这个问题,主要有两个点,第一,JavaScript的函数;第二,重载。
首先,说一下重载。所谓重载,简单说,就是函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。所以说,重载主要需要两点:第一,同样的函数名。第二,不同的函数参数。
明确了重载的定义之后,我们再回到JavaScript这里。追本溯源,现在一说到JavaScript,我们就可以联想到ECMAScript,即JavaScript的标准。那么,这个标准里面对函数做出了那些规范呢?
首先,ECMAScript是没有函数签名的概念的,因为其参数是由包含零或多个值的数组来表示的。而没有函数签名,真正的重载是不可能做到的。
其次,如果在ECMAScript中定义了两个名字相同的函数,则该名字只属于后定义的函数,如下:
在上面的例子中,add()函数被定义了两次,然而,当我们调用他的时候,却直接调用了第二个函数,这说明在JavaScript中,后定义的函数会覆盖先定义的函数。
说到这里,是不是就可以判定JavaScript不支持函数重载了呢?
让我来介绍一下JavaScript里面的一个arguments对象。首先,ECMAScript函数的参数与其他语言的函数参数有一点不同。ECMAScript函数不介意传进来的参数个数和类型。也就是说,在你定义了函数只接受两个参数之后,你仍然可以在调用的时候传递零或多个参数。这并不会报错。原因就在于arguments对象。ECMAScript中,函数的参数始终是存放在一个数组中,而通过arguments对象,就可以访问到这个数组。所以,只需要使用length属性就可以确定调用函数时传递了多少个参数。
说到这里,我们可以来尝试这样写:
通过这个例子,我们可以看出,通过检查传入函数中参数的数量,JavaScript函数可以做出不同的反应,这可以间接达到重载的目的。
所以,JavaScript是可以模仿函数的重载的。
- JavaScript的函数支持重载吗?
- JavaScript的函数支持重载吗?
- javascript不能支持函数的重载
- JavaScript的重载函数实现
- JavaScript中函数的重载
- javascript函数能重载吗?
- 让JavaScript 轻松支持函数重载Part 1 - 设计
- 让 JavaScript 轻松支持函数重载 Part 2 - 实现
- 让 JavaScript 轻松支持函数重载 (Part 1 - 设计)
- javascript.全局函数.函数的重载
- JavaScript学习-js中函数的重载
- javascript中函数重载的问题
- javascript模拟函数重载
- javascript 函数重载
- javascript 模拟函数重载
- Javascript实现函数重载
- JavaScript不支持函数重载
- javascript不支持函数重载
- centos7 apache部署项目
- hunnu 11463 信封问题 (找规律||搜索)
- Eclipse 接口开发(一)
- MindManager可以为您和您的团队做些什么?
- 20171215.03
- JavaScript的函数支持重载吗?
- String类实现
- 分布式开发--数据库中间件
- 解决Eclipse中跟代码无法查看源码变量信息
- 递归算法2
- StringUtil(java String工具类)
- 字符串反转
- 一篇文章读懂阿里云企业级数据库最佳实践
- 百度地图点聚合自定义marker