Go 闭包。举例子
闭包是指在一个函数中定义另一个函数,并返回这个函数,同时这个函数可以访问到外部函数的变量,即形成了一个封闭的作用域。
举个例子:
function outer() {
var count = 0;
function inner() {
count++;
console.log(count);
}
return inner;
}
var closure = outer();
closure(); // 输出 1
closure(); // 输出 2
closure(); // 输出 3
在这个例子中,outer()函数返回了inner()函数,并将其赋值给变量closure。当我们调用closure()时,它会访问到外部函数outer()的变量count,并且每次调用closure()都会使count加1并输出当前的值,形成了一个闭包。由于count变量只能被inner()函数访问,所以它被封闭在函数作用域内,不会被其他函数或代码所修改。
原文地址: https://www.cveoy.top/t/topic/dxBb 著作权归作者所有。请勿转载和采集!