js模拟实现重载以及默认参数
2017-10-01 22:45
183 查看
众所周知,js是函数不支持重载和默认参数的,但是我们可以使用一些其他方法来模拟这个方法的实现。
首先看一下重载的定义:函数名相同,函数的参数列表不同(包括参数个数和参数类型),至于返回类型可同可不同。
以及默认参数的定义:默认参数指的是当函数调用中省略了实参时自动使用的一个值。
那么如何实现这两个功能呢,一个很简单的方法就是使用arguments来进行模拟。
下面先说实现重载的方法:
接下来是实现默认参数的方法:
下面进行一下测试:
首先看一下重载的定义:函数名相同,函数的参数列表不同(包括参数个数和参数类型),至于返回类型可同可不同。
以及默认参数的定义:默认参数指的是当函数调用中省略了实参时自动使用的一个值。
那么如何实现这两个功能呢,一个很简单的方法就是使用arguments来进行模拟。
下面先说实现重载的方法:
function overLoad(){//用这样的方法模拟重载 if(arguments[0]){//如果存在第一个参数 if(arguments[1]){//如果第一个参数第二个参数都存在 //to do... alert(arguments[0]+arguments[1]); } else{//如果只有第一个参数 alert(arguments[0]); //to do... } } else{//如果无参 alert("null"); //to do... } }
接下来是实现默认参数的方法:
function defaultArg(){//用这样的方法模拟默认参数 var a = arguments[0]?arguments[0]:"hello";//第一个参数的默认值为hello var b = arguments[1]?arguments[1]:"world";//第二个参数的默认值为world //... alert(a+b); }
下面进行一下测试:
//重载测试 overLoad();//null overLoad("hello ");//hello overLoad("hello ","world");//hello world //默认参数测试 defaultArg();//hello world defaultArg("你好 ");//你好 world defaultArg("你好 ","世界");//你好 世界
相关文章推荐
- js中函数的表示法以及模拟函数的重载
- [置顶] 在js中如何实现方法重载?以及函数的参数问题
- js实现调用方法(函数)时可动态传入不同参数个数、模拟实现方法(函数)重载
- 在js中如何实现方法重载?以及函数的参数问题
- JS模拟实现方法重载示例
- JS实现点击某张图片弹出上传图片窗口以及限制图片格式和大小
- 智能指针(模拟实现auto_ptr,shared_ptr,scooeptr 以及定制删除器c++ 实现)
- [原创]Javascript模拟“类”的综合实现方式以及部分细节【截至ES6】
- js/jquery获取浏览器窗口可视区域高度和宽度以及滚动条高度实现代码
- jquery以及原生js 如何实现div倒序
- Spring学习札记:第2节 属性注入方式以及模拟BeanFactory实现
- json对象与数组以及转换成js对象的简单实现方法
- js和jQuery以及easyui实现对下拉框的指定赋值
- JS学习 用 arguments 对象模拟函数重载
- 原生js实现模拟滚动条
- 原生js实现自适应宽度瀑布流以及加载效果——李帅醒博客
- 百度自动发贴,登录很顺利的模拟实现,但发贴攻关失败,能力有限,追JS过程中颇为痛苦
- js+CSS实现模拟华丽的select控件下拉菜单效果
- 也许是目前实现最好的js模拟滚动插件
- 原生JS实现全屏切换以及导航栏滑动隐藏及显示——修改