`

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里,有很多方法就是这样实现混合参数的。
用起来确实方便。

相关推荐

    Javascript中的arguments与重载介绍

    总之,虽然JavaScript本身不直接支持函数重载,但通过理解和使用arguments对象,我们可以在一定程度上模拟这一功能,从而根据不同的参数情况来执行不同的逻辑处理。然而,需要谨慎使用这种技术,因为它可能导致代码...

    关于JS重载

    总结来说,虽然JavaScript没有内置的函数重载机制,但我们可以通过检查参数个数、类型、使用默认值、rest参数以及命名参数等多种方式来模拟重载功能,以满足不同场景的需求。理解并灵活运用这些技巧,可以使我们的...

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

    在JavaScript中,虽然没有像Java或C#等其他面向对象语言那样内置的方法重载机制,但我们可以通过巧妙地利用`arguments`对象来模拟方法重载的功能。`arguments`是一个类数组对象,它包含了函数被调用时的所有实际参数...

    JavaScript中如何通过arguments对象实现对象的重载

    但在JavaScript中,我们可以通过`arguments`对象来模拟实现类似的功能。 `arguments`对象是一个类数组对象,它包含了函数调用时传入的所有实际参数。无论函数定义了多少个形式参数(形参),`arguments`对象总是...

    js中方法重载如何实现?以及函数的参数问题.docx

    另一种常见的模拟重载的方式是通过在函数名前面加上参数数量或类型,比如 `addTwoNumbers(a, b)`、`addOneNumber(a)` 和 `addNoNumber()`。然后根据函数名的不同调用来执行相应逻辑。这种方式更易于阅读,但不够灵活...

    JS模拟实现方法重载示例

    在JS方法中,不能像C#方法能实现重载,但是我们可以通过js中的arguments来实现js方法的重载。 下面给出html实例: <html> <head> <title>JS方法的重载</title> [removed] function testFun...

    Javascript中arguments用法实例分析

    若不使用arguments对象,则需要为每一个参数数量重载一个函数,这在JavaScript中是不可行的,因为JavaScript不支持方法重载。通过arguments对象,我们可以轻松地处理不同数量的参数,如下代码所示: ```javascript ...

    JavaScript重载函数实例剖析_.docx

    本文将深入探讨如何在JavaScript中模拟重载,并提供具体的实现示例。 #### 二、JavaScript中的重载模拟 ##### 2.1 基于参数数量的模拟 JavaScript中有一个特殊的变量`arguments`,它是一个类数组对象,包含了传递...

    Javascript中的arguments对象

    由于JavaScript本身不支持函数重载的机制,arguments对象提供了一种模拟重载的手段,使得可以编写一个函数来处理不同数量的参数。 首先,让我们看看什么是arguments对象。在JavaScript中,函数可以接受任意数量的...

    Arguments是进行函数调用.doc

    在JavaScript中,由于没有像其他一些面向对象语言那样的方法重载机制,`Arguments`对象提供了变通的途径来模拟这一功能。例如,你可以检查`arguments.length`来确定传入的参数数量,进而执行相应的处理。 下面是一...

    js arguments对象应用介绍

    因此,arguments对象虽然在早期JavaScript编程中扮演了重要角色,但在新的JavaScript代码中,可能不再那么频繁使用了。 总的来说,arguments对象为JavaScript函数提供了一种灵活的参数处理方式,特别是在处理不定...

    JavaScript的arguments对象应用示例

    尽管在现代JavaScript开发中,ES6引入了更灵活的参数处理方式,如rest参数和默认参数,但在学习和理解JavaScript时,了解arguments对象的使用和特点对于掌握JavaScript函数的参数传递机制仍然很有价值。 ### ...

    js重载资料

    总结来说,虽然JavaScript本身不直接支持函数重载,但我们可以通过各种方式来模拟实现这一功能,如检查`arguments`对象、使用命名函数表达式、类的构造函数或TypeScript等。理解并熟练运用这些技巧,可以帮助我们...

    详解JS函数重载

    开发者可以利用这个arguments对象来模拟函数重载的行为。 模拟JavaScript函数重载通常涉及以下几种方法: 1. 根据参数个数进行重载 2. 根据参数类型进行重载 基于参数个数进行重载相对简单。通过arguments.length...

    js中方法重载如何实现?以及函数的参数问题

    但尽管如此,我们依然可以通过巧妙地利用`arguments`对象来模拟实现方法重载。 `arguments`是一个类数组对象,它包含了函数调用时传入的所有参数。即使函数声明中指定了参数,`arguments`也会包含所有传递的实际...

    JS函数重载的解决方案

    JavaScript是一种支持面向对象编程的语言,然而它的早期版本并不支持...此外,随着ECMAScript 6(ES6)的引入,JavaScript开始支持默认参数,这在某种程度上可以减轻上述模拟重载的需求,但仍然不能完全替代函数重载。

    Arguments对象作用深度研究.pdf

    Arguments对象在JavaScript中扮演的角色之一是模拟方法重载。由于JavaScript语言本身不支持真正的函数重载,即不允许在同一作用域内定义两个或多个同名但参数列表不同的函数,Arguments对象提供了一种变通的方式。...

Global site tag (gtag.js) - Google Analytics