zoukankan      html  css  js  c++  java
  • javascript中的arguments

     在每个函数中,都有个名为 arguments 的变量,它以类似数组的形式保存了当前调用的参数。而它实际上并不是个数组,使用 typeof arguments
    语句尝试会返回“object”(对象),所以它不能像 Array 一样使用 push 和 pop
    等方法。即便如此,仍然可以使用下标以及长度属性(length)获取它的值。

    在JavaScript中,arguments是对象的一个特殊属性。arguments对象就像数组,但是它却不是数组。
    1:arguments是收到的实参副本   在词法分析中, 首先按形参形成AO的属性,值为undefined   当实参传来时, 再修改AO的相应属性.   2:并把所有收到实参收集起来,放到一个arguments对象里   t(a,b,c){},   调用时: t(1,2,3,4,5) 5个参数   此时 , AO属性只有a,b,c,3个属性, arguments里有1,2,3,4,5, 所有的值

    1属性

    length, 获取arguments对象的长度。
    callee, 引用当前正在执行的函数。

    2举例

    参数的长度

    window.onload = function(){
    abc(1,2,3);
    }
    function abc(){
    //虽然这里没有引用参数,但是arguments仍能捕获到
    alert(arguments.length);
    }//output 3

    隐藏的参数

    function abc(x,y){
    alert(x+","+y);
    for(var i=0;i<arguments.length;i++){
    alert(" "+arguments[i]);
    }
    }//output: 1,2
    1 2 3

    改变参数值

    function abc(x,y,z){
    arguments[2] = "hello";
    for(var i=0;i<arguments.length;i++){
    alert(" "+arguments[i]);
    }
    }//output: 1 2 hello

     另一个例子:

    js arguments对象

    在javascript中,不需要明确指出参数名,就能访问它们。如:
    function hi(){
    if(arguments[0]=="andy"){    
      return; }
    alert(arguments[0]); }
    用arguments[0]可以访问第一个参数,如此类推。
    利用arguments对象可以实现重载,利用arguments.length可以获取函数的参数个数,如下:
    function hi(){
    if(arguments.length==1)
    { alert(arguments[0]); }
    else if(arguments.length==2)
    {alert(arguments[0] + arguments[1]); }
    }
  • 相关阅读:
    读取XML字符串到临时表
    Golang学习笔记
    Golang环境配置Centos
    IntelliJ Idea 常用快捷键列表
    Elasticsearch的Groovy Script自定义评分检索
    MSSQL读取xml字符串到临时表
    通过反射给对象属性动态赋值总结(含可空属性)
    。。。。。
    指定位置输出函数
    DBhelper
  • 原文地址:https://www.cnblogs.com/zhhq/p/3424919.html
Copyright © 2011-2022 走看看