函数和闭包可以替换Javascript中的类吗?

时间:2013-04-19 06:50:33

标签: javascript angularjs

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

  但是,我必须说,我使用Angular越多,兴趣就越小   我在创建课程。类不是javascript所在的地方!   您可以使用纯函数和几乎完成所需的一切   关闭然后你不必担心麻烦   “这个”和“那个”。

有人可以解释“闭包”的含义。

1 个答案:

答案 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允许内部   功能;函数定义和函数表达式   在其他功能的功能中。而那那些内在的   允许函数访问所有局部变量,参数   并在其外部函数中声明了内部函数。关闭   当其中一个内部功能在外面可以访问时形成   包含它的函数,以便它可以被执行   外部函数返回后。它仍然存在   访问局部变量,参数和内部函数   声明其外部功能。那些局部变量,参数   和函数声明(最初)具有它们具有的值   当外部函数返回并且可以与之交互时   内在的功能。

Source