js中间接实现其他语言函数重载功能
2017-06-12 10:22
288 查看
js没有函数重载
js中没有函数重载的功能:定义两个相同名字的函数,则后面的函数会把前面的函数覆盖掉。
说明func(a,b)覆盖了func(a),导致找不到该函数
间接实现js函数重载
通过使用js中arguments系统变量不显示的使用命名参数,可以实现该功能
注意:arguments参数通过外部函数传递给内部函数的问题
上面这个函数则因为func函数的参数无法传递给fun1和func2导致打印NaN,更正后代码如下
js中没有函数重载的功能:定义两个相同名字的函数,则后面的函数会把前面的函数覆盖掉。
function func(a){ console.log(a); } funciton func(a,b){ console.log(a+b); } func(3) 执行之后控制台打印:Uncaught SyntaxError: Unexpected identifier
说明func(a,b)覆盖了func(a),导致找不到该函数
间接实现js函数重载
通过使用js中arguments系统变量不显示的使用命名参数,可以实现该功能
function func(){ if(arguments.length==1){ console.log(arguments[0]); }else if(arguments.length==2){ console.log(arguments[0]+arguments[1]); } } func(1) 1 func(1,2) 3
注意:arguments参数通过外部函数传递给内部函数的问题
function func(){ if(arguments.length==1){ func1(); }else if(arguments.length==2){ func2(); } } function func1(){ console.log(arguments[0]); } function func2(){ console.log(arguments[0]+arguments[1]); } func(1) NaN func(1,2) NaN
上面这个函数则因为func函数的参数无法传递给fun1和func2导致打印NaN,更正后代码如下
function func(){ if(arguments.length==1){ func1(arguments[0]); }else if(arguments.length==2){ func2(arguments[0],arguments[1]); } } function func1(){ console.log(arguments[0]); } function func2(){ console.log(arguments[0]+arguments[1]); } func(1) 1 func(1,2) 3
相关文章推荐
- js中没有函数重载,怎样实现函数重载的功能?
- Atitit java c# php c++ js跨语言调用matlab实现边缘检测等功能attilax总结
- 行式填报表利用JS函数实现批量删除功能
- 使用JS实现jQuery的addClass, removeClass, hasClass函数功能
- JS实现函数重载
- 用函数模板来实现函数重载的功能.cpp
- 原生js上传图片功能 angular语法(可改写为其他语言版本)。
- Atitit java c# php c++ js跨语言调用matlab实现边缘检测等功能attilax总结
- JS自定义功能函数实现动态添加网址参数修改网址参数值
- c语言如何实现函数重载
- C语言简单宏函数实现C++模板功能(类型本身作为函数参数)
- 使用原生JS实现jQuery的addClass, removeClass, hasClass函数功能
- [置顶] 在js中如何实现方法重载?以及函数的参数问题
- 使用JS实现jQuery的addClass, removeClass, hasClass函数功能
- C#利用反射实现(js)Eval,asp(Execute)功能 动态执行类库中的函数
- js实现的星星评分功能函数
- 用js进行url编码后用php反解以及用php实现js的escape功能函数总结
- 用js进行url编码后用php反解以及用php实现js的escape功能函数总结
- 用js进行url编码后用php反解以及用php实现js的escape功能函数总结
- C++学习 【4.4】 利用函数实现指定的功能---函数的重载、函数模板、有默认参数的函数