闭包是如何工作的

How do closures work?

本文关键字:工作 何工作 闭包      更新时间:2023-09-26

可能重复:
JavaScript闭包是如何工作的?

function add(num){
    return function(num1){                
          return function(num2){                    
               return num + num1 + num2;
         };
    };
}
var add5 = add(7)((7))((7));
console.log(add5);

我已经用JavaScript做了很多实验,因为我正在努力掌握闭包是如何工作的。

但后来我试过这个

var add5 = add(7)((7))((7));
console.log(add5); //result is 21

在我看来,闭包是指向外部函数还是其父函数的指针?

闭包是外部函数的作用域,即使外部函数执行结束,内部函数也可以访问它。具体如何实现,取决于JS解释器。

以下是MDN的文档:https://developer.mozilla.org/en/JavaScript/Guide/Closures