美文网首页
搬开Javascript三座大山(1):闭包

搬开Javascript三座大山(1):闭包

作者: JokerPeng | 来源:发表于2017-08-16 09:25 被阅读0次

闭包的解释(又长又臭):

闭包就是嵌套在函数里面的内部函数,并且该内部函数可以访问外部函数中声明的所有局部变量、参数和其他内部函数。当该内部函数在外部函数之外被调用,就生成了闭包。

其实用代码解释,就是这样:

function outer(a){
    function inner(b){
        console.log(a+b);
    }
    return inner;
}

var six = outer(6);
six(4); // 10

在这里inner()这个函数作为一个outer()的返回值

但还有一种情况,函数作为参数传递:

var a = 1;
f1 = function(b){
    console.log(a+b);
}

(function f2(f){
    var a = 11;
    f(5);
})(f1);

f1函数作为一个参数被传递进入另一个函数,赋值给f参数。执行f(15)时,a变量的取值是1,而不是11。

相关文章

  • 搬开Javascript三座大山(1):闭包

    闭包的解释(又长又臭): 闭包就是嵌套在函数里面的内部函数,并且该内部函数可以访问外部函数中声明的所有局部变量、参...

  • 作用域闭包

    概览 背景知识:JavaScript内存管理、JavaScript作用域。 内容 1 闭包定义 闭包:当函数可以记...

  • JavaScript 作用域

    概览 背景知识:JavaScript内存管理、JavaScript作用域。 内容 1 闭包定义 闭包:当函数可以记...

  • JS之闭包与IIFE

    本篇文章主要讨论了: JavaScript引擎 全局对象 闭包 循环 + 闭包 IIFE + 闭包 1.JavaS...

  • JavaScript----闭包

    javascript之闭包 闭包的概念     闭包(closure)是 JavaScript 的一种语法特性。 ...

  • 笔记:JavaScript闭包

    本文摘录及参考自:1. 学习Javascript闭包(Closure)2. 闭包的秘密3. JavaScript ...

  • JavaScript: 零基础轻松学闭包

    JavaScript: 零基础轻松学闭包 参考链接 JavaScript: 零基础轻松学闭包(1)http://w...

  • 学习JavaScript闭包和作用域笔记

    JS JavaScript闭包和作用域 闭包 JavaScript高级程序设计中对闭包的定义:闭包是指有权访问另外...

  • 深入理解javascript原型和闭包(完结)

    深入理解javascript原型和闭包(1)——一切都是对象 深入理解javascript原型和闭包(2)——函数...

  • JavaScript函数闭包

    JavaScript闭包 JavaScript 变量可以是局部变量或全局变量。私有变量可以用到闭包。 全局变量1....

网友评论

      本文标题:搬开Javascript三座大山(1):闭包

      本文链接:https://www.haomeiwen.com/subject/rygbrxtx.html