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

什么是“结束”?

什么是“结束”?

www说 2019-07-09 16:22:46
什么是“结束”?我问了一个关于赛跑和关闭的问题。什么是结束?它与赛跑有什么关系?
查看完整描述

3 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

我将举一个例子(用JavaScript):

function makeCounter () {
  var count = 0;
  return function () {
    count += 1;
    return count;
  }
}

var x = makeCounter();

x(); returns 1

x(); returns 2

...etc...

这个函数makeCounter所做的是返回一个函数,我们称之为x,它每次调用时都会计数一次。因为我们没有为x提供任何参数,所以它必须以某种方式记住计数。它知道在什么叫做词法作用域的基础上找到它-它必须寻找它定义的地方,以找到值。这个“隐藏”值就是所谓的闭包。

我再举一个例子:

function add (a) {
  return function (b) {
    return a + b;
  }
}

var add3 = add(3);

add3(4); returns 7

您可以看到,当您使用参数a(即3)调用Add时,该值包含在返回函数的闭包中,我们将其定义为add3。这样,当我们调用add3时,它知道在哪里找到执行加法的a值。


查看完整回答
反对 回复 2019-07-09
  • 3 回答
  • 0 关注
  • 504 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信