`
52web开发
  • 浏览: 24212 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

arguments.callee[JS]

 
阅读更多

  argument代表当前函数的参数数组

  arguments.callee表示引用当前正在执行的函数,或者说是调用arguments.callee的函数对象的引用,它给匿名函数提供了一种自我引用的方式。通过如下例子,可以更好的理解概念。

 

var func = function() { alert(func === arguments.callee);}func();

 

  执行上述代码,可以看到alter出来的结果是true,注意,此处用的是“===”,就是说func与arguments.callee对象类型和值都相等。

 

  上面讲了arguments.callee的定义,那么它用在什么场合呢?一般来说,它会和匿名函数一起结合来用。

 

  例如js脚本当前等待页面某种条件是否满足,如果满足进行相应初始化处理,但不是一直等下去,超过一定时间就放弃等待

 

//匿名函数实现

var start = new Date().getTime();

(function(){

 

if ((new Date()).getTime() - start > 3000) { return; }

setTimeout(arguments.callee, 1000);}

)();

 

  比如执行初始化操作,使用匿名函数的好处是确保只被执行一次,而前面两种实现,由于定义了函数,就有可能在别处被误调用,从而执行多次初始化。

 

  再看一递归调用例子:求一个数的阶乘

 

//普通实现

function fun2(n)

{

     if (n > 1) { return n * fun2(n -1);

    return 1;

}

var r1 = fun2(3); //计算3的阶乘

 

//使用匿名函数

var r2 = (function(n) { if (n > 1) { return n * arguments.callee(n -1); } return 1;})(3);

分享到:
评论

相关推荐

    Javascript中arguments和arguments.callee的区别浅析

    在JavaScript中,`arguments` 和 `arguments.callee` 都是与函数参数相关的特殊对象,但它们的作用和用途略有不同。下面将详细解释这两个概念及其区别。 `arguments` 对象是一个类数组对象,它包含了函数调用时传入...

    js arguments.callee的应用代码

    arguments.callee是JavaScript中的一个特殊对象,它指向正在执行的函数本身。这个特性在现代JavaScript编程中已经不推荐使用,但在老旧的代码中还是可以看到它的影子,特别是在使用递归调用函数时,arguments.callee...

    JavaScript arguments.callee作用及替换方案详解

    JavaScript中的`arguments.callee`是一个在函数内部引用当前正在执行的函数对象的属性。这个属性在函数递归、保持函数封装性以及匿名函数自我引用等场景中尤其有用。然而,由于`arguments`对象是一个相对昂贵的操作...

    Javascript函数中的arguments.callee用法实例分析

    尽管如此,对arguments.callee的学习仍然很重要,因为它体现了JavaScript语言的灵活性和早期的一些编程习惯。在不使用箭头函数或在无法使用命名函数表达式的特殊情况下,了解如何使用arguments.callee也是有价值的。...

    js代码-arguments.callee

    总的来说,虽然`arguments.callee`在过去的JavaScript开发中起到了重要作用,但随着语言的进化,开发者应逐渐适应不依赖`arguments.callee`的编程风格,充分利用ES6及更高版本提供的新特性,编写更加高效、简洁的...

    js的隐含参数(arguments,callee,caller)使用方法.docx

    JavaScript中的隐含参数`arguments`, `callee`, 和 `caller`是函数内部的特殊变量,它们提供了关于函数调用的重要信息。下面将详细解释这三个参数的使用方法。 **arguments对象** `arguments`对象是一个非常有用的...

    sorttable.js 排序-方便实用的js排序,只需简单操作即可见到效果 Vue

    sorttable.js 排序-方便实用的js排序,只需简单操作即可见到效果 var stIsIE = /*@cc_on!@*/false; sorttable = { init: function() { // quit if this function has already been called if (arguments...

    javascript中arguments,callee,caller详解

    JavaScript中的arguments、caller和callee是与函数调用相关的几个重要概念,它们分别代表函数调用时传递的参数对象、调用当前函数的函数以及当前正在执行的函数。 首先,我们来了解arguments。在JavaScript中,当...

    js的隐含参数(arguments,callee,caller)使用方法

    在JavaScript编程中,arguments、caller和callee是函数对象自带的三个隐含参数,它们为开发者提供了额外的函数执行信息,尤其在处理函数参数、递归调用以及调用栈追踪时非常有用。下面详细介绍这些隐含参数的使用...

    【JavaScript源代码】JavaScript中arguments的使用方法详解.docx

    JavaScript中的`arguments`对象是一个非常重要的特性,尤其在处理不确定数量的函数参数时。它不是一个真正的数组,但具有数组类似的行为,允许我们访问函数调用时传入的所有参数。在这个文档中,我们将深入探讨`...

    js中arguments,caller,callee,apply的用法小结.docx

    在JavaScript中,arguments、caller、callee和apply是四个与函数调用相关的特性,它们在编写高级和复杂的函数逻辑时非常有用。下面将详细介绍这些概念及其用法。 1. **arguments对象** arguments对象是一个特殊...

    关于arguments,callee,caller等的测试

    关于arguments,callee,caller等的测试 function testArg() { var sTemp =”test()开始执行\n\n函数定义的正文:\n\n”; sTemp+=arguments.callee + “\n\n”; sTemp+=”传入参数的长度:\n”; sTemp+=arguments....

    Arguments对象作用深度研究.pdf

    Arguments对象是JavaScript中一个特殊的数据结构,主要用于在函数内部存储传递给函数的所有参数。无论函数定义了多少个参数,Arguments对象都会包含所有实际传递的参数。这篇深度研究主要探讨了Arguments对象的几个...

    javascript中callee与caller的用法和应用场景

    在JavaScript中,`caller` 和 `callee` 是与函数相关联的两个属性,它们提供了函数调用和被调用的上下文信息。了解这两个属性的用法,对于深入理解JavaScript中的函数执行机制非常有帮助。 首先来看`caller`属性。`...

    javascript函数中的arguments参数

    总的来说,`arguments`对象提供了对函数参数的灵活访问,`arguments.length`和`arguments.callee`(虽然在现代JavaScript中不推荐使用)是两个关键属性,它们帮助开发者更好地理解和操作函数的参数。理解这些特性...

Global site tag (gtag.js) - Google Analytics