js实现方法重载
来源:互联网 发布:mwc飞控源码2.5 编辑:程序博客网 时间:2024/06/02 03:26
高级编程语言中基本上有会用到方法的重载比如如下代码
可是你在调用的时候会发现完全无法重载,所以我们可以借助arguments对象来变相的实现方法重载,
public decimal add(decimal d1, decimal d2) { return d1 + d2; } public decimal add(string d1, string d2) { decimal res = 0; try { res= decimal.Parse(d1) + decimal.Parse(d2); } catch (Exception e) { throw new Exception("字符串转化decimal类型失败" + e.Message); } return res; }
但是如果在js中这样写就会被覆盖,因为函数定义时的参数个数和函数调用时的参数个数没有任何关系
在函数中可以用f.arguments[0]和f.arguments[1]得到调用时传入的第一和第二个参数,比如无想把时间字符
串格式化,如果按照上面那种写法应该是如下代码
String.prototype.getDate = function () { var res = /\d{13}/.exec(this); if (res != null) var date = new Date(parseInt(res)); else var date = new Date(this) return date.format("yyyy-MM-dd HH:mm:ss"); } String.prototype.getDate = function (format) { var res = /\d{13}/.exec(this); if (res != null) var date = new Date(parseInt(res)); else var date = new Date(this) return date.format(format); }
可是你在调用的时候会发现完全无法重载,所以我们可以借助arguments对象来变相的实现方法重载,
修改后代码如下:
String.prototype.getDate = function () { var res = /\d{13}/.exec(this); if (res != null) var date = new Date(parseInt(res)); else var date = new Date(this) if (arguments.length == 1) {//判断参数个数 return date.format(arguments[0]);//arguments[0]获取第一个参数 } return date.format("yyyy-MM-dd HH:mm:ss"); }
这时候再试下就可以了:
str.getDate()//返回yyyy-MM-dd HH:mm:ss格式
str.getDate("yyyy-MM-dd")//返回yyyy-MM-dd格式
阅读全文
0 0
- js实现方法重载
- 每日一个知识点--JS实现方法重载
- paip.编程语言方法重载实现的原理及python,php,js中实现方法重载
- js面向对象编程:如何实现方法重载
- 妙用缓存调用链实现JS方法的重载
- js中实现重载
- js重载的实现
- js重载的实现
- js中实现重载
- js重载的实现
- js模拟实现重载
- javascript 实现方法重载
- php实现方法重载
- js继承和方法重载
- js中方法的重载
- WCF 中的方法重载 实现
- 用__call()实现方法重载
- 在js中如何实现方法重载?以及函数的参数问题
- spring钩子方法和钩子接口的使用详解
- 关于DataSet
- 未来智能实验室成立,建设世界第一个AI智商评测和趋势研究机构
- 杂文一则
- 关于css预编译器Less
- js实现方法重载
- 低调的苹果罕见发表论文,揭开自动驾驶汽车技术的冰山一角
- Binary Tree Level Order Traversal:层次遍历二叉树,并返回每层的数值
- 反射
- Java虚拟机类加载机制
- D3.js 中Bubble Chart详解
- 数组中只出现一次的数字
- AndroidStudio、gradle、buildToolsVersion关系
- 最全的常用正则表达式大全