zoukankan      html  css  js  c++  java
  • 我对arguments.callee的理解

    基本理解:

    你怎么看待一个函数呢?又如何看待一个函数对象呢?函数和Function之间的关系到底是什么?我觉得理解这些对理解arguments.callee有所帮助。

    先说说auguments.callee是什么:它是一个指针,它指向当前函数,这个函数没有当前的参数环境,是一个纯净的Function实例,就好比一个厕所,对象只是去厕所撒尿,撒完尿它会出来,厕所还是厕所

    案例说明:

    网上找到一个例子,可以很好说明它的用途,怎么看耦合性高低,假如我这样调用 let copy = factorial;    factorial = null;    copy(3);  一般写法结果是错误的,而升级写法是正确的。使用它还有一个作用,可以直接从函数中获取原型对象。

    //一般的写法,缺点耦合性高(红色部分)
    function
    factorial(num){ if (num <=1) { return 1; } else { return num * factorial(num-1) } }
    //升级写法,优点耦合性低
    function
    factorial(num){ if (num <=1) { return 1; } else { return num * arguments.callee(num-1); } }

    你学到东西了,记得点赞告诉我。

  • 相关阅读:
    fitnesse的安装
    elasticsearh 迁移
    网络基础之 二层三层网络通讯
    ansible 基本使用之3 palybook
    ansible-基本使用-2
    ansible 基本使用-1
    k8s 机器搭建之etcd
    http 状态码之3xx
    mysql 主从相关
    redis 主从及哨兵模式
  • 原文地址:https://www.cnblogs.com/pecool/p/11730101.html
Copyright © 2011-2022 走看看