`

JS中使用arguments模拟重载

    博客分类:
  • js
EXT 
阅读更多

今天看读别人的代码的时候发现了arguments对象,不明白之下翻了下书,总结了下,以便备用

写给不会的朋友,会者飘过~

ECMASCript规范中不存在重载这个概念,测试代码 如下

function test(){
 }
function test(){
alert('1');
}
function test(){
alert('2');
}
test();//2

 根据顺序执行的规则,前2个test函数被最后一个test函数覆盖,所以最后输出为2

---使用arguments,可以无法指出参数名的情况下进行访问

----arguments可以看错为一个参数列表数组,通过argument[index]的形式对参数进行访问

-----arguments.length获得参数列表长度

function test(){
  if(arguments[0]!=undefined){
  alert(arguments[0]);
  }
}
test(2);//2

 根据 上面对arguments的介绍,结合argument.length.就可以实现方法的重载,虽然不是很方便,但却可以绕开ECMASCript不能重载的限制了

function test(){
  if(arguments.length==1){
  alert(arguments[0]);
  }
  else if(arguments.length==2){
  alert(arguments[0]+arguments[1]);
  }
}
test(2);//2
test(1,2);//3

 

 

 

分享到:
评论
1 楼 butnet 2010-06-22  
确实这样可以模拟重载的功能,
但一起里面还会加些typeof之类的判断,
在Ext里,有很多方法就是这样实现混合参数的。
用起来确实方便。

相关推荐

    JS模拟实现方法重载示例

    主要介绍了JS模拟实现方法重载,涉及js基于arguments实现重载的相关技巧,需要的朋友可以参考下

    Javascript中arguments用法实例分析

    主要介绍了Javascript中arguments用法,实例分析了javascript利用arguments实现模拟重载功能,需要的朋友可以参考下

    Javascript中的arguments对象

    但可用arguments对象模拟重载效果。 arguments对象:函数对象内,自动创建的专门接收所有参数值得类数组对象。 arguments[i]: 获得传入的下标为i的参数值 arguments.length: 获得传入的参数个数! 重载:  程序...

    javascript中通过arguments参数伪装方法重载

    而javascript没有方法重载这个概念。但是我们可以通过arguments这个参数来伪装成函数的重载 在模拟之前我们先看一下代码: 代码如下: //表面上没有声明形式参数的函数 function fun() { alert(“示例代码”&#...

    详解JS函数重载

    本文主要介绍了利用JavaScript中的特殊对象arguments来模拟函数重载的解决方案,非常的实用,给需要的小伙伴参考下

    javascript函数重载解决方案分享

    JS的函数定义可以指定形式参数名称,多多少少我们会以为js至少可以支持参数个数...办法总是有的,我们可以利用JavaScript中的特殊对象arguments来模拟函数重载。用它来判断传入参数的个数或类型以区分重载。 1.根据参数

    JavaScript重载函数实例剖析

    javascript的函数中有一个叫arguments的变量,是记录参数的一个数组,我们可以用这个来判断参数的个数,然后分别执行不同的内容,就是同一个函数可以有不同效果,跟C++等强类型语言的重载函数还是相差很大。...

    Javascript 面向对象 重载

    假如 我这样定义: 代码如下: function getDate(){…..} function getDate(date){…..} 那么后一个方法将覆盖前一... 答案很简单:arguments arguments是JavaScript里的一个内置对象,包含了调用者传递的实际参数,但不

    Javascript数组操作高级心得整理

     使用[removed]调用外部的JavaScript(.js文件) 4  如何与老浏览器打交道 4 (2) 把JavaScript代码放到HTML页面不同的位置 4  把JavaScript代码放到HTML<body>部分 4  把JavaScript代码放到HTML<head...

    JavaScript王者归来part.1 总数2

     6.2.2.3 一个使用Arguments对象模拟函数重载的例子   6.2.3 参数类型匹配--一个利用arguments实现函数重载机制的例子   6.3 函数的调用者和所有者   6.3.1 函数的调用者   6.3.2 函数的所有者--一个为函数...

    JavaScript高级教程

    第 1 章 JavaScript 是什么...............................................1 3 1.1 历史简述..............................................1 1.2 JavaScript 实现................................................

Global site tag (gtag.js) - Google Analytics