栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

闭包之[[Scopes]]属性;

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

闭包之[[Scopes]]属性;

为了区分普通匿名函数与闭包,这里使用谷歌浏览器和console.dir()命令查看普通函数与闭包函数。
同时使用编辑器声明了两个函数:

   //普通函数
    function ordinary() {
 return 'ordinary Function!!!';
    };
    console.dir(ordinary);

   //闭包
    function closure_Fn() {
 var num = 1;
 return function () {
     return ++num;
 }
    }
    var add = closure_Fn();
    console.dir(add);
    console.log(add());//2
    console.log(add());//3

打开控制台会看到:
普通函数的 [[Scopes]] 属性中只有一个 Global 全局对象。
闭包函数的 [[Scopes]] 属性中新增了Closure(闭包)对象,并且。个对象保存了num值,name属性便是闭包函数的标识(zhi)符 closure_Fn ;

这里的 num 被保存到了closure_Fn闭包函数下的Closure中。。


到这里,我们可以很清晰的看清了普通函数与闭包的主要区别,这里的 [[Scopes]] 便是保存函数作用域链的对象。

高级程序设计第三版:


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/247079.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号