首页 > 代码库 > Arguments
Arguments
1、非数组,但有数组的特性
不是一个真正的数组,不可以使用数组的push\pop方法等,但是可以通过数组形式获取各个参数。可以通过转换成为真正的数
var args = Array.prototype.slice.call(arguments); //转换成真的数组 可以使用push pop等方法
2、Arguments对象有一个非同寻常的特性.
当函数具有命名了的参数时, Arguments对象的数组元素是存放函数参数的局部变量的同义词. arguments[]数组和命名了的参数不过是引用同一变量的两种不同方法. 用参数名改变一个参数的值同时会改变通过arguments[]数组获得的值. 通过arguments[]数组改变参数的值也会相应的改变用参数名获取的参数值。
function b(x, y, a) { console.log(arguments);arguments[2] = 10; alert(a); //10console.log(arguments);}b(1, 2, 3); function bb(x, y, a) { a = 10;alert(arguments[2] ); //10}bb(1,2,3);
function f(a, b,c){ alert(arguments.length); // result: "2" a = 100; alert(arguments[0]); // result: "100" arguments[0] = "qqyumidi"; alert(a); // result: "qqyumidi" alert(c); // result: "undefined" c = 2012; //c这里是形参中的变量 不可作为全局变量 alert(arguments[2]); // result: "undefined"}f(1, 2);alert(c); //c in not defined
3、arguments.callee指向函数自身
arguments.callee返回此arguments对象所在的当前函数引用。在使用函数递归调用时推荐使用arguments.callee代替函数名本身。
Arguments
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。