为什么fun1和fun2是两个独立的闭包呢

为什么fun1和fun2是两个独立的闭包呢

问题描述:

两个函数都是通过addCount()赋值得到的

函数时引用类型.

那么不是应该都是引用的addCount返回的函数吗

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕然然 2021-06-02 16:24:58

同学你好,虽然fun1和fun2都是指向addCount返回的函数,但是fun1和fun2是新开辟的两个内存空间,是两个新的函数,这两个空间是互相独立的,形成的闭包也是独立的。祝学习愉快!

  • https://img1.sycdn.imooc.com//climg/6390437609637a9f03020243.jpg

    对象里这几个函数为什么不是独立的闭包呢,为什么他们操作a的值能互相影响呢?

    2022-12-07 15:41:59
  • 同学你好,这两种写法是有区别的。此题中addCount方法调用了两次

    https://img1.sycdn.imooc.com//climg/63904dc7091ea14b09660623.jpg

    这两次调用是独立的闭包,count值互不影响。而同学的截图中只调用了一次fun方法

    https://img1.sycdn.imooc.com//climg/63905d5309d7a62c06600511.jpg

    getA,add以及pow方法都在fun中,那么就可以改变a值。但是调用两次fun方法,两次fun方法中的a值互不影响。例如:

    https://img1.sycdn.imooc.com//climg/63905ebb093c365e05300494.jpg

    https://img1.sycdn.imooc.com//climg/63905eca0958904104710054.jpg

    自己测试理解下,祝学习愉快!

    2022-12-07 17:38:12
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师