美文网首页
js中的闭包

js中的闭包

作者: jadefan | 来源:发表于2019-10-14 22:56 被阅读0次

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

一般情况下,在函数外部是无法访问内部变量的,因为内部变量在函数执行完成后就会销毁,也就是内部变量的生命周期结束。但是如果有闭包存在,便可实现在外部访问函数作用域中的变量。

    var age=0;
    function Person() {
      var age = 10;  
      console.log(age);
    }
    Person();  //10
    age++;
    console.log(age);  //1
    age++;
    console.log(age);  //2
    Person();  //10

能够验证出,在函数外部无法改变内部的age

    var age=0;
    function Person() {
      var age = 0; 
      function grow() {
        age++;
        console.log(age);
        console.log(this.age);
      } 
      return grow;
    }

    var timepass = Person();
    timepass();  //1 0 
    timepass();  //2 0
    timepass();  //3 0
    timepass();  //4 0

可以看到随着时间的流逝,函数内部的age在递增,全局的age并没有增加,也就是在执行grow()函数时,this对象是window,但还是可以访问到函数Person()函数内的age,两者互不影响

相关文章

  • JS闭包大结局(JS闭包系列3)

    在上一篇中再谈JS闭包(JS闭包系列2),我详细的介绍了JS中的变量作用域相关的概念,结合第一节关于JS闭包(JS...

  • 简单的聊一下闭包

    js中的闭包 闭包是学习js中永远也绕不过去的一个坎,那么,今天我们就去一段简单的代码开始聊一聊闭包 什么是闭包 ...

  • 浅谈闭包

    js中的闭包 闭包是学习js中永远也绕不过去的一个坎,那么,今天我们就去一段简单的代码开始聊一聊闭包 什么是闭包 ...

  • php之闭包函数(Closure)

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

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

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

  • JS闭包

    JS闭包 闭包练习

  • 再谈JS闭包(JS闭包系列2)

    这篇文章,来继续谈谈Javascript闭包的剩余问题。因为在上一篇文章中关于JS闭包(JS闭包系列1)主要简单的...

  • 2018-01-10

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

  • js经典题目

    1闭包 链接:学习Javascript闭包(Closure) setTimeout在js单线程中只是放在队列中并未...

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

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

网友评论

      本文标题:js中的闭包

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