js中的函数参数个数问题(重载问题)
来源:互联网 发布:你好万维网 知乎 编辑:程序博客网 时间:2024/05/16 14:45
在javascript中,不存在重载机制,参数个数不是区别不同函数的标志,函数名是函数唯一的标识。
<html><head lang="en"> <meta charset="UTF-8"></head><body> <script> var fun=function(arg){ console.log("我是函数1"); }; var fun=function(arg1,arg2){ console.log("我是函数2"); }; var arg1=1; var arg2=2; fun(arg1); fun(arg1,arg2); </script></body></html>输出为:
我是函数2我是函数2从上面这个例子可以看出,第二个函数的定义覆盖了第一个函数,fun这个名字最终指向了第二个函数,第一个函数消失了,永远不会被调用到了,这跟变量的覆盖是一样的,js中还不存在变量重名的问题,后面定义的变量总会覆盖前面已经定义的变量。
这给函数的调用带来了一定灵活,因为不用担心参数个数不匹配的问题,在函数调用时,实参会按顺序赋给形参,多余的实参会被省略掉,未被赋值的形参为undefined(就是变量声明了没赋值,在函数中判断一个参数是否被赋值了用var===undefined进行判断,注意,在函数外判断一个变量是否被声明或定义:typeof(x) == "undefined" )。
对于变量个数不确定的函数,完全可以不声明形参,在函数内部可以通过arguments来访问传递给该函数的所有的实参,其中arguments为包含所有实参的数组。
0 0
- js中的函数参数个数问题(重载问题)
- js: 读取js函数中的参数个数
- js函数重载的问题
- WCF中的函数重载问题
- Delphi函数重载时参数类型问题
- js 函数参数值问题
- JS函数参数传递问题
- 关于js的函数重载的问题
- 在js中如何实现方法重载?以及函数的参数问题
- JS利用参数个数实现重载
- 继承层次中的函数重载问题
- Python函数中的参数问题
- Matlab函数重载_变参数个数
- js 重载问题
- JS重载问题
- 【C++提高】函数重载的参数匹配问题
- C#函数重载问题
- 一个函数重载问题
- 自己的
- win2003安装IIS后的网站设置
- 浅谈ARM 汇编里的 literal pools(文字池)
- 从“假如有以下几种价格10,20,50,请你代码实现将他们排序输出”看设计模式中的策略模式
- 如果磁盘空间使用率大于60%就执行某个网页
- js中的函数参数个数问题(重载问题)
- 解决ViewPager双层嵌套的滑动问题
- cocos2dx 3.0 mac环境安装
- C语言读写BMP文件
- cocos2d-x中锚点设置及定位方式
- yii 日历分秒显示
- ubuntu 14.04 使用Meclipse 10.7 闪退
- linux下非标准波特率的设置和使用
- Cloudera CDH增加节点到集群