我正在阅读有关 AngularJS 的信息,并在新闻组中看到以下声明:
不过,我不得不说,我使用 Angular 的次数越多,我对创建类的兴趣就越少。类不是 javascript 所在的地方!你可以用纯函数和闭包做几乎所有你需要的事情,然后你不必担心麻烦的“this”和“that”。
有人可以解释“关闭”是什么意思吗?
我正在阅读有关 AngularJS 的信息,并在新闻组中看到以下声明:
不过,我不得不说,我使用 Angular 的次数越多,我对创建类的兴趣就越少。类不是 javascript 所在的地方!你可以用纯函数和闭包做几乎所有你需要的事情,然后你不必担心麻烦的“this”和“that”。
有人可以解释“关闭”是什么意思吗?
闭包是 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 允许内部函数;其他函数的函数体内部的函数定义和函数表达式。并且允许这些内部函数访问其外部函数中的所有局部变量、参数和声明的内部函数。当其中一个内部函数可以在包含它的函数之外访问时,就会形成一个闭包,这样它就可以在外部函数返回后执行。此时它仍然可以访问其外部函数的局部变量、参数和内部函数声明。那些局部变量、参数和函数声明(最初)具有它们在外部函数返回时所具有的值,并且可以与内部函数进行交互。