美文网首页
JS中的匿名函数递归调用

JS中的匿名函数递归调用

作者: 帕博雷克斯丢丢 | 来源:发表于2018-09-10 00:45 被阅读0次
    存不存在一种完全不需要这种给予准确函数名(函数引用变量名)而调用其的方式呢?

    我们知道在任何一个function内部,都可以访问到一个叫做arguments的变量。
    打印出这个arguments变量的细节:
    (function(){console.dir(arguments)})(1,2)

    JS_function_arguments_callee.png
    可以看出他是Arguments的一个实例,而且从数据结构上来讲,他是一个类数组。他除了类数组的元素成员和length属性外,还有一个callee方法。 那么这个callee方法是做什么的呢?我们来看下MDN:

    callee 是 arguments 对象的属性。在该函数的函数体内,它可以指向当前正在执行的函数。当函数是匿名函数时,这是很有用的, 比如没有名字的函数表达式 (也被叫做”匿名函数”)。

    //匿名函数的递归调用
    (function() {
        alert("?");
        var loop = setTimeout(arguments.callee,1000);
        if (loop >= 10) {clearTimeout(loop);}
    })();
    

    相关文章

      网友评论

          本文标题:JS中的匿名函数递归调用

          本文链接:https://www.haomeiwen.com/subject/kddjgftx.html