美文网首页
JS闭包,函数间的连接纽带

JS闭包,函数间的连接纽带

作者: 本杰明蚂蚁 | 来源:发表于2018-07-21 10:12 被阅读2次

闭包是什么?

闭包就是有权访问另一个函数作用域的变量的函数。

作用域:

function foo (){

    var a = '大象’;

}

console.log(a);  // a is not defined

函数有函数自己的作用域,那么闭包就是如下:

function foo (){

        var a = '大象';

        function get (){

            return a;

        }

        return get;

    }

        var getName =  foo();

        console.log(getName());//大象

函数 get()获取到 a变量 就是形成闭包。

通过foo的return 返回赋值给getName;调用getName()就能拿到a变量了;

这有什么好处?

a变量是存在在foo函数作用域内的,可以叫局部变量,也可以叫私有变量。

这样子的话在就避免污染了window中的全局变量,私有变量不能随意改变;

假设一个jquery中的闭包例子:

(function(document){

            var doc = document;

            var obj = {

                getId:function(name){

                    return doc.getElementById(name);

                }

            }

            window.JQuery = window.$ = obj;

        })(document)

var  doc就是立即执行函数中的私有变量,通过obj中的getId函数访问到,并且return返回;

那么doc是安全的,只能在内部改变。

相关文章

  • JS闭包,函数间的连接纽带

    闭包是什么? 闭包就是有权访问另一个函数作用域的变量的函数。 作用域: function foo (){ va...

  • php之闭包函数(Closure)

    php闭包函数(Closure) JS闭包 js和php闭包使用和区别

  • 前端面试题(持续补充)

    js,node.js基础: 闭包 闭包是能够读取其他函数内部变量的函数。在js中,只有函数内部的子函数可以访问内部...

  • 闭包

    关键词:闭包(closure) 概念:闭包就是能够读取其他函数内部变量的函数,对于js,闭包就是将函数内部和函数外...

  • 2018-01-10

    js中的闭包 一.什么是闭包 闭包官方的解释是:闭包就是能够读取其他函数内部变量的函数。由于在javascr...

  • js 闭包 字符串 定时器

    js闭包 闭包的三大特点为: 1、函数嵌套函数2、内部函数可以访问外部函数的变量3、参数和变量不会被回收。闭包的作...

  • js 闭包 字符串 定时器

    js闭包 闭包的三大特点为: 1、函数嵌套函数2、内部函数可以访问外部函数的变量3、参数和变量不会被回收。闭包的作...

  • 闭包小记

    什么是闭包? 闭包就是能够读取其他函数内部变量的函数。在js中,只有函数内部的函数才能读取局部变量,所以闭包就是“...

  • 闭包——十万个为什么

    什么是闭包? 简单的来说闭包就是函数。那函数是不是闭包呢? 网上有一句话js函数皆是闭包。我觉得这句话是不太准确。...

  • 彻底搞懂JS闭包各种坑

    闭包是js开发惯用的技巧,什么是闭包?闭包指的是:能够访问另一个函数作用域的变量的函数。清晰的讲:闭包就是一个函数...

网友评论

      本文标题:JS闭包,函数间的连接纽带

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