Mar*_*urg 14 closures functional-programming terminology
与闭包相结合,我经常读到某些 东西因其他东西而关闭,作为解释闭包的手段.
现在我理解闭包没有太大困难,但"收尾"似乎是一个更基本的概念.否则一个人不会用它来解释闭包,会不会?
结算的确切定义是什么,什么是东西和其他东西?该术语来自何处?
Aad*_*hah 16
考虑:
something closes over something else
|_______| |_________| |____________|
| | |
subject verb object
Run Code Online (Sandbox Code Playgroud)
这里:
考虑一个简单的功能:
function add(x) {
return function closure(y) {
return x + y;
};
}
Run Code Online (Sandbox Code Playgroud)
这里:
add只有一个名为的变量,x它不是自由变量,因为它是在add自身范围内定义的.closure有两个变量,名为xand y,其中x一个是自由变量,因为它在add(not closure)范围内定义,而y不是自由变量,因为它是在closure自身范围内定义的.因此,在第二种情况下,名为的函数closure被称为"关闭"名为的变量x.
因此:
closure变量的闭包x.x的函数的upvalue closure.这里的所有都是它的.