博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js中的arguments
阅读量:5257 次
发布时间:2019-06-14

本文共 1176 字,大约阅读时间需要 3 分钟。

了解这个对象之前先来认识一下javascript的一些功能:

其实Javascript并没有重载函数的功能,但是Arguments对象能够模拟重载。Javascrip中国每个函数都会有一个Arguments对象实例arguments,它引用着函数的实参,可以用数组下标的方式"[]"引用arguments的元素。arguments.length为函数实参个数,arguments.callee引用函数自身。

 

arguments他的特性和使用方法

特性:

arguments对象和Function是分不开的。因为arguments这个对象不能显式创建,arguments对象只有函数开始时才可用。

使用方法:

虽然arguments对象并不是一个数组,但是访问单个参数的方式与访问数组元素的方式相同

例如:

arguments[0],arguments[1],。。。。。。。。arguments[n],

 

在js中 不需要明确指出参数名,就能访问它们,例如:

function test() {

        var s = "";
        for (var i = 0; i < arguments.length; i++) {
            alert(arguments[i]);
            s += arguments[i] + ",";
        }
        return s;
    }
    test("name", "age")

输出结果:

name,age

 

我们知道每一个对象都有自己的属性,arguments对象也不例外,首先arguments的访问犹如Array对象一样,

用0到arguments.length-1来枚举每一个元素。下面我们来看看callee属性,返回正被执行的Function 对象,
也就是所指定的 Function 对象的正文。callee 属性是 arguments 对象的一个成员,仅当相关函数正在执行时才可用。
callee 属性的初始值就是正被执行的 Function 对象,这允许匿名的递归函数。

var sum = function (n) {

        if (1 == n) {
            return 1;
        } else {
            return n + arguments.callee(n - 1);
        }
    }
    alert(sum(6));

 通俗一点就是,arguments此对象大多用来针对同个方法多处调用并且传递参数个数不一样时进行使用。根据arguments的索引来判断执行的方法。

 

arguments 的用法和特性基本就是这么多了。可能callee属性用到的比较少。但是如果自己封装或者写一些js的时候 除了callee的东西基本都会用到。有不对的地方希望朋友们多多支出。大家共同进步。

转载于:https://www.cnblogs.com/ckAng/p/10489373.html

你可能感兴趣的文章
c++ class
查看>>
[leetcode]Longest Valid Parentheses
查看>>
Altera Quartus II 12.0订购版下载
查看>>
移动端踩坑系列(一)————input默认调用数字键盘
查看>>
第十八次ScrumMeeting会议
查看>>
mysql部分替换
查看>>
IOS关于数据加密(主要为登录加密)想总结的
查看>>
微信公众号导出关注的用户信息
查看>>
test
查看>>
使用ProGuard使你android代码保持混淆
查看>>
android listVIew实现button按钮监听程序
查看>>
[C++] getaddrinfo的一个bug
查看>>
perl C/C++ 扩展(四)
查看>>
BZOJ2763: [JLOI2011]飞行路线
查看>>
【c# 学习笔记】阻止派生类重写虚成员
查看>>
Django 路由
查看>>
fcgi返回状态码
查看>>
pycharm 中查找替换功能
查看>>
【特征匹配】BRISK原文翻译
查看>>
grep 基于关键字搜索
查看>>