javascript - 关于 JS 闭包的一些疑问
巴扎黑
巴扎黑 2017-04-11 10:57:36
[JavaScript讨论组]
var x = 100;  
var inc = function(){  
  var x = 0;
  return function(){
    console.log(x++);
  };
};

var inc1 = inc();  
var inc2 = inc();

inc1();  // -> 0  
inc1();  // -> 1  
inc2();  // -> 0  
inc1();  // -> 2  
inc2();  // -> 1  
x;       // -> 100 

如上代码中,inc1操作的变量x和inc2操作的变量x为什么不是同一个呢?望各位大神赐教

巴扎黑
巴扎黑

全部回复(1)
PHPz

为什么会是一个呢?
执行一次inc函数就是产生一个x的局部变量和一个匿名函数(引用着这个局部变量的)
inc1 和inc2引用的变量不一样的
inc1和inc2的引用也是不一样的,不行你看看inc1 == inc2

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号