文档章节

javascript Arguments对象之length、callee属性

Adam-Lee
 Adam-Lee
发布于 2014/07/21 14:13
字数 321
阅读 564
收藏 2

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

1、length属性,我们可以利用Arguments对象的length属性来获取实际传递进的参数有几个。

function a(x, y, z) {

        //arguments.callee指向函数a(),arguments.callee.length==a.length;

        alert(arguments.callee.length); 

        //输出5

        alert(arguments.length);

        if (arguments.callee.length != arguments.length) {

            //判断形参与实参个数是否相等,不相等则不执行

            return false;

        }

        alert("执行");

    };

    a(1,2,3,4,5);

2、callee属性,Arguments对象的callee属性,指向当前调用的函数,可以利用它来进行函数自身的重载。在闭包中应用的也比较广泛。

var i = 0;

    function b(num) {

        if (num < 10) {

            num++;

            i++;

            //如果有参数,callee也要把参数带上;

            arguments.callee(num);

        } else {

           //输出2次

           alert("调用了"+i+"次callee!");

        }

    }

    b(8);

 Arguments.callee在闭包中的应用,它提供了一种递归调调用的功能。

//用arguments.callee计算10的阶乘,例如: 1×2×3×4×5×6×7....

    function c(x) {

        return x > 1 ? x * arguments.callee(x - 1) : 1

    } (10);

    //输出6

    alert(c(3));

    //输出3628800

    alert(c(10));


© 著作权归作者所有

Adam-Lee
粉丝 50
博文 118
码字总数 166965
作品 0
深圳
程序员
私信 提问
js中arguments的作用

在javascript函数体内,标识符arguments具有特殊含义。它是调用对象的一个特殊属性,用来引用Arguments对象。 Arugments对象就像数组,注意这里只是像并不是哈。 javascript函数体内,argum...

Sherlock_z
2014/10/31
83
0
【JavaScript】callee 与 caller

callee callee是函数参数arguments对象的一个属性,它指向参数arguments对象所在的函数自身。 从控制台中可以看到打印的结果为: 它的作用就是在函数内部通过调用arguments.callee()来代替调...

小草先森
05/20
10
0
JS中caller和callee

caller:   caller是函数对象的一个属性,指的是这个函数对象的调用者,如果调用者,如果是顶层调用者,则返回null. 例: function func(){ }function obj(){ }obj();func(); //调用者为顶级对象...

莫问今朝乄
2018/01/10
0
0
Javascript 吐槽function

说到funciton,也是我对js非常吐槽的一点,封装的让我眼瞎,马蛋的,哥只能大眼睁着去黑盒的使用,简直只有完完全全的听各类图书对 function的道听图说,完全没有做到一点点的眼见为实。 一:...

开源oschina
2014/12/26
128
0
JavaScript 类数组对象与 arguments

在 JavaScript 中存在一种特殊的对象,我们称之为类数组对象,其性质与数组相似。我们经常会遇到各种类数组对象,最常见的便是 argumengs。 类数组对象 所谓类数组对象,就是指可以通过索引属...

淘淘笙悦
2018/11/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

类比思想歪解Java线程

在操作系统的概念里,有内核态,用户态。其实,操作系统的最小执行单位是进程,而进程是分类型的,有两种类型,内核进程,用户进程。 内核进程由操作系统启动时创建,用户进程是由用户程序启...

萧默
44分钟前
2
0
Git推送错误“ [[远程拒绝]主机->主机(分支当前已签出)”)

昨天,我发布了一个有关如何将Git存储库从我的一台计算机克隆到另一台计算机的问题 , 如何从另一台计算机“ git clone”? 。 现在,我可以成功地将Git存储库从源(192.168.1.2)克隆到目标...

javail
54分钟前
4
0
Selenium 4.0 Alpha更新日志

早在2018年8月,整个测试自动化社区就发生了一件重大新闻:Selenium的创始成员Simon Stewart在班加罗尔Selenium会议上正式确认了Selenium 4的发布日期和一些重要更新。 Selenium 4.0 Alpha版...

八音弦
今天
7
0
2、编写程序求Sn=a+aa+aaa+…+aa…aa的值,其中a是1—9之间的一位数字,n表示 a的位数

//编写程序求Sn=a+aa+aaa+…+aa…aa的值,其中a是1-9之间的一位数字, //n表示 a的位数 #include<stdio.h> int main() { int a,n,i,Sn=0,Z=0; printf("please intput a:\n"); scanf("%d",&a......

201905021729吴建森
今天
5
0
Git中的HEAD是什么?

您会看到Git文档说出类似 分支必须在HEAD中完全合并。 但是到底什么是Git HEAD ? #1楼 了解正确答案的一种好方法是运行git reflog HEAD ,您可以获得HEAD所指向的所有位置的历史记录。 #2楼...

技术盛宴
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部