试图在JavaScript中创建非常简单的闭包

时间:2013-12-30 22:50:02

标签: javascript groovy closures

所以我正在观看这个视频,并且在18:14他有一个例子,用编程语言“Groovy”展示闭包。 https://www.youtube.com/watch?v=7aYS9PcAITQ

JavaScript可以使用闭包以相同的方式“保存”实例,如果是这样,有人可以为我学习一些代码示例吗? 我一直在阅读JavaScript中的闭包,基本上我知道如果你在函数中有一个函数而外部函数返回,那么内部函数可以保持活动状态,这就是闭包的一部分。

def makeCounter() {
    def very_local_variable = 0
    return { very_local_variable += 1 }
}

c1 = makeCounter()
c1()
c1()
c1()

c2 = makeCounter()

println "C1 = ${c1()}, C2 = ${c2()}"

OUTPUT and closures:
C1 = 4, C2 = 1

1 个答案:

答案 0 :(得分:3)

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

var c1 = makeCounter();
c1();
c1();
c1();

var c2 = makeCounter();

console.log("C1 = ", c1(), " C2 = ", c2());