美文网首页
再说arguments对象

再说arguments对象

作者: 每日log | 来源:发表于2021-01-06 17:35 被阅读0次

1. arguments对象的属性

今天在写一个闭包函数的时候,突然想到了函数的arguments对象,我们知道arguments是函数的一个属性,只有在函数内部才能被调用。我们再次打印arguments

function fn(){
image

arguments.length 代表了实参的个数

arguments.callee 是函数本身,也就是说可以用它来调用函数自身。

那么当我们再次写闭包函数的时候,可以用arguments.callee代替函数自身呀

我们以斐波那契函数为例,再次写一个闭包函数求某个斐波那契值。

2. 求斐波那契数列 1、1、2、3、5、8、13、21...

观察规律,从第三项开始,当前项的值是前两项的和,如果当前数字是n,前两项就是n-1和n-2,递归状态:fb(n-1)+fb(n-2);

退出条件是:n为1和2的时候当前项都是1。

function fb(n) {
    if (n === 1 || n === 2) {
        return 1;
    }
    return fb(n - 1) + fb(n - 2);
}
console.log(fb(5)); // 5

用arguments.callee代替fb函数:

function fb(n) {
    if (n === 1 || n === 2) {
        return 1;
    }
    return arguments.callee(n - 1) + arguments.callee(n - 2);
}
console.log(fb(5)); // 5

下次我们在写一个方法调用本身的时候,记得arguments.callee哦。

点个赞哦~

图片

更多请参考:【你一定知道但是不常用的方式】闭包和递归还可以这样写?

相关文章

  • 再说arguments对象

    1. arguments对象的属性 今天在写一个闭包函数的时候,突然想到了函数的arguments对象,我们知道a...

  • js中arguments的用法

    arguments特性 **arguments **对象不能显式创建, **arguments **对象只有函数开...

  • Javascript arguments对象详解

    今天我们来看看arguments对象及属性。arguments对象不能显式创建,arguments对象只有函数开始...

  • 笔记(四)--arguments

    1.arguments对象介绍 arguments 凡是函数调用,默认含有一个 arguments 对象,可以将其...

  • 过程记录

    了解arguments 特性:arguments对象不能显式创建,arguments对象只有函数开始时才可用。函数...

  • ECMAScript arguments对象

    1.arguments是什么? arguments 是一个类数组对象 arguments对象是函数内部的本地变量,...

  • js中arguments的用法

    arguments特性arguments对象不能显式创建,arguments对象只有函数开始时才可用。函数的 ar...

  • js的arguments

    1. arguments: 函数中默认带有一个arguments的对象,这是一个类数组对象。 arguments记...

  • Arguments对象

    类数组对象,对应于传递给函数的参数。function(x,y,z){var x = arguments[0];va...

  • arguments 对象

    arguments 对象 在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们。...

网友评论

      本文标题:再说arguments对象

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