侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

内部函数解耦合

2024-05-16 星期四 / 0 评论 / 0 点赞 / 100 阅读 / 1311 字

这里拿递归函数做例子: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>test</title></

这里拿递归函数做例子: 

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>test</title></head><body>    test</body><script>    function factorial(num){        if(num <= 1){            return 1;        }else{            return num * factorial(num - 1);        }    }    console.log(factorial(5));    //定义阶乘函数一般都要用到地柜算法;如上面的代码所示,在函数有名字,而且名字以后也不会    //变的情况下,这样定义么有问题。但问题是这个函数的执行与函数名factorial紧紧耦合在一起了。    //为了消除这张哦那个紧密耦合的现象,可以像下面这样使用arguments.callee.    function factorial(num){        if(num <= 1){            return 1;        }else{            return num * arguments.callee(num - 1);        }    }    console.log(factorial(5));    //在函数内部,有两个特殊的对象:arguments和this。arguments的用途是保存函数参数,但这个    //对象还有一个名叫callee的属性,改属性是一个指针,指向拥有这个arguments对象的函数。</script></html>

 

广告 广告

评论区