为了账号安全,请及时绑定邮箱和手机立即绑定

instance是一个闭包么?求解

instance是一个闭包么?求解

小唯快跑啊 2018-10-16 10:09:18
var test = function() {    var val = 0;    var add = function(num) {         val += num;        return val;     };    return add; };var instance = test();console.log(instance(3)); // 3console.log(instance(4)); // 7看了一个资料,说instance 是一个闭包。由 add 函数, 和创建 add 函数时的环境(变量 val)组成,不理解......
查看完整描述

1 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

instance是什么?是test函数的返回值。
test函数的返回值是什么?是add
add是什么?add是个函数。
所以instancetest返回的一个函数。

这个函数是不是闭包?只要看函数里有没引用到函数定义外面的变量就可以了。
add的定义,发现用到了在外面的val,所以是个闭包。

当然不是所用引用了外部变量的就是闭包,引用的外部变量的函数还要被返回到外部作用域外的地方。


查看完整回答
反对 回复 2018-11-02
  • 1 回答
  • 0 关注
  • 546 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号