Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS-闭包及其使用_Javascript_Closures - Fatal编程技术网

Javascript JS-闭包及其使用

Javascript JS-闭包及其使用,javascript,closures,Javascript,Closures,我目前正在学习道格拉斯·克罗克福德的《Javascript:好的部分》,我试图理解闭包到底是什么。其描述如下: "The function object created by a function literal contains a link to that outer context. This is called closure. " 并提供了以下示例: var add = function (a, b) { return a + b; }; 然而,如果我理解正确的话,我在这里看到的只

我目前正在学习道格拉斯·克罗克福德的《Javascript:好的部分》,我试图理解闭包到底是什么。其描述如下:

"The function object created by a function literal contains a link to that outer
context. This is called closure. "
并提供了以下示例:

var add = function (a, b) {
return a + b;
};

然而,如果我理解正确的话,我在这里看到的只是一个函数文本,而不是一个闭包。那么在最简单的形式中,闭包是什么样子的呢

看一看,我认为这在技术上会有帮助,文字仍然会围绕任何周围的变量创建一个闭包。然而,它并不是一个非常有用的工具。当函数文本需要比外部作用域持续更长时间时,闭包非常有用。我能想到的最简单有用的闭包是
varadd=function(to){returnfunction(val){alert(val+to);};}。使用as
var加法器=add(4);加法器(5);加法器(6)
等。返回的函数literal在
to
变量上创建一个闭包。感谢这两个有用的注释!这些帮助我更好地理解闭包是什么!干杯