关于JS闭包的介绍

首页 编程分享 JQUERY丨JS丨VUE 正文

昧光 转载 编程分享 2018-02-28 09:14:29

简介 主要介绍了关于关于JS闭包的介绍,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下


这篇文章主要介绍了关于关于JS闭包的介绍,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

一、作用域

    var x = 0  //全局变量 x
    var y = 10 //全局变量 y
    var fun1 = function(){
        var x = 1  //fun1函数局部变量 x
        console.log(x++)
        console.log(y)
    } 
    fun1() //输出 1  10 函数内可以访问函数上级的变量
    console.log(x) //输出0 函数外部不能调用函数内部的局部变量

二、闭包

<!-- 闭包:有权访问另一个函数作用域中的变量的函数。大多是在一个函数内部创建另一个函数 -->
    var x = 0  //全局变量 x
    var fun1 = function(){
        var x = 1  //fun1函数局部变量 x
        function fun2() {
            console.log(x++) //当x = 1时 x++ = x ; ++x = x+1
        }
        return fun2  //此时fun2就是一个闭包
    } 
    var run1 = fun1()
    run1() //输出 1 
    run1() //输出 2 run1是函数是引用类型,上一步运行run1将变量x改变进而影响这步的输出

    var run2 = run1
    run2() //输出 3  因为run2 = run1 run1和run2是函数属于引用类型 所以共用一个作用域链
    run2() //输出 4

    var run3 = fun1()
    run3() //输出 1 这里不是5 run3有自己的作用域链
    run3() //输出 2

    console.log(x) //输出 0

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

转载链接:http://www.php.cn//js-tutorial-406034.html


Tags:


本篇评论 —— 揽流光,涤眉霜,清露烈酒一口话苍茫。


    声明:参照站内规则,不文明言论将会删除,谢谢合作。


      最新评论




ABOUT ME

Blogger:袅袅牧童 | Arkin

Ido:PHP攻城狮

WeChat:nnmutong

Email:nnmutong@icloud.com

标签云