我正在阅读有关AngularJS的内容,并在新闻组中看到以下声明:
但是,我必须说,我使用Angular越多,兴趣就越小 我在创建课程。类不是javascript所在的地方! 您可以使用纯函数和几乎完成所需的一切 关闭然后你不必担心麻烦 “这个”和“那个”。
有人可以解释“闭包”的含义。
答案 0 :(得分:1)
闭包是Javascript代码中的一种结构,在嵌套函数中,外部函数作用域保留在内部函数中。
例如:
function outer(x,y){
var t = 1;
return function(z){
//x, y, t from the outer function are made available to inner function
return x + y + z + t;
}
}
var outer1 = outer(1,1); //creating a closure, or an instance of a function in sense
alert(outer1(1)); //Alerts 4
var outer2 = outer(2,2);
alert(outer2(2)); //Alerts 7
关闭的简单解释是ECMAScript允许内部 功能;函数定义和函数表达式 在其他功能的功能中。而那那些内在的 允许函数访问所有局部变量,参数 并在其外部函数中声明了内部函数。关闭 当其中一个内部功能在外面可以访问时形成 包含它的函数,以便它可以被执行 外部函数返回后。它仍然存在 访问局部变量,参数和内部函数 声明其外部功能。那些局部变量,参数 和函数声明(最初)具有它们具有的值 当外部函数返回并且可以与之交互时 内在的功能。