`
Asen丶
  • 浏览: 40349 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

arguments及arguments.callee

阅读更多

首先有一个JavaScript函数

 

function test(a, b, c, d) {
    return a + b;
}

 

在JavaScript中调用一个函数的实参个数可以和被调用函数的形参个数不匹配,要求并没有像java那么严格,因为在ECMAScript中的参数在内部是用一个数组来表示的,函数被调用的时候接收到的始终是这个数组,而不关心数组中包含包含哪些参数,甚至是没有元素也无所谓

function test(a, b, c, d) {
    return a + b;
}

console.log(test(10, 20));

  

这样的代码在JavaScript中是不会报错的,同时在JavaScript中我们可以通过下列代码获得实参及形参的个数

 

function test(a, b, c, d) {
    console.log(test.length);//这里获得的是形参的个数
    console.log(arguments.length);//这里获得的是实参的个数,这段代码必须放在函数内部
}

console.log(test(10, 20));

 

同时还有一个类似的对象叫做arguments.calee,这个对象通常被用作递归调用

function test2(num) {
    if(num <= 1) return 1;
    else return num*arguments.callee(num-1);
}

console.log(test2(5));

 

如果将arguments.callee(num-1)改为test2(num-1),会在下列调用中会报错

var F = test2;
test2 = null;
console.log(F(5));

 

0
0
分享到:
评论

相关推荐

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

    在示例中,`args.callee.length` 返回的是 `f` 函数声明时定义的参数数量,即3。这在检查函数调用时传入的参数数量是否与预期一致时非常有用。在本例中,由于实际传递的参数数量(2)不等于期望的参数数量(3),...

    js arguments.callee的应用代码

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

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

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

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

    3. 严格模式('use strict')下,arguments.callee无法使用,这是因为在严格模式中,对arguments.callee的访问会抛出TypeError。 然而,随着JavaScript的发展,尤其是ES6引入了箭头函数和尾调用优化等特性之后,...

    js代码-arguments.callee

    console.log(arguments.callee.outerVar); // ES5及以前版本可能可行 }, 1000); ``` 然而,`arguments.callee`也有一些缺点和限制: 1. **性能问题**:由于`arguments.callee`涉及函数的隐式引用,这可能导致...

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

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

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

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

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

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

    Arguments对象作用深度研究.pdf

    这篇深度研究主要探讨了Arguments对象的几个关键特性,包括其作为伪数组对象的身份、length属性、参数访问方式以及callee属性。 首先,Arguments对象是一个伪数组对象,这意味着它拥有一个length属性,并且可以通过...

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

    JavaScript中的`arguments`对象是一个...通过`arguments.length`可以获取参数个数,通过索引访问参数值,以及利用`arguments.callee`实现递归等功能。在编写函数时,善用`arguments`可以使代码更具灵活性和可扩展性。

    Arguments是进行函数调用.doc

    `Arguments`对象还有一个属性`callee`,它指向当前正在执行的函数本身。这在某些情况下很有用,特别是在匿名函数或者需要引用自身的情况下。然而,由于`callee`可能会影响性能和导致不清晰的代码,现代JavaScript...

    javascript中arguments,callee,caller详解

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

    arguments对象的使用

    在严格模式下,使用`arguments.callee`是不推荐的,因为它降低了代码的可读性和可维护性。 4. **arguments对象与形参的关系**:如果函数定义了形参,那么形参变量会自动绑定到`arguments`对象中对应的值。例如,...

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

    if (arguments.callee.done) return; // flag this function so we don't do the same thing twice arguments.callee.done = true; // kill the timer if (_timer) clearInterval(_timer); if (!...

    关于arguments,callee,caller等的测试

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

Global site tag (gtag.js) - Google Analytics