zoukankan      html  css  js  c++  java
  • 看一个闭包的小问题

    通过一个小问题研究一下闭包

    var test = (function (){
    var number = 4;
    return function(){
    number *= 2;
    console.log(number);
    }
    })()
    
    test();//8
    test();//16
    test();//32
    
    

    另一个对比的方法

    var test = function (){
    var number = 4;
    return function(){
    number *= 2;
    console.log(number);
    }
    }
    
    test()();//8
    test()();//8
    test()();//8
    

    结论: 可以看出这两个地方的区别. 如果形成了闭包, 在外部是可以进行闭包内部的更改的.
    但是如果是已经结束返回的, 虽然也算闭包(test()()), 但是已经是一个独立的区域.

    可以说第一种情况, 是大家共用了闭包的变量(number), 但第二个则是独立的.(如果这么理解的话)

  • 相关阅读:
    python安装教程
    protobuf安装教程
    PlantUML安装教程
    题解-CF1140E Palindrome-less Arrays
    FST
    线段树
    题解-CF677D Vanya and Treasure
    最短路
    后缀自动机
    虚树
  • 原文地址:https://www.cnblogs.com/asdfq/p/10994206.html
Copyright © 2011-2022 走看看