2

我正在阅读有关 AngularJS 的信息,并在新闻组中看到以下声明:

不过,我不得不说,我使用 Angular 的次数越多,我对创建类的兴趣就越少。类不是 javascript 所在的地方!你可以用纯函数和闭包做几乎所有你需要的事情,然后你不必担心麻烦的“this”和“that”。

有人可以解释“关闭”是什么意思吗?

4

1 回答 1

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 允许内部函数;其他函数的函数体内部的函数定义和函数表达式。并且允许这些内部函数访问其外部函数中的所有局部变量、参数和声明的内部函数。当其中一个内部函数可以在包含它的函数之外访问时,就会形成一个闭包,这样它就可以在外部函数返回后执行。此时它仍然可以访问其外部函数的局部变量、参数和内部函数声明。那些局部变量、参数和函数声明(最初)具有它们在外部函数返回时所具有的值,并且可以与内部函数进行交互。

资源

于 2013-04-19T06:59:24.633 回答