博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[译]FireClosure – JavaScript闭包检查器
阅读量:6911 次
发布时间:2019-06-27

本文共 1031 字,大约阅读时间需要 3 分钟。

原文:


是一个值得关注的Firebug扩展.它能很好的集成到Firebug目前的UI中(实际上我们正在考虑是否要把该扩展内置到Firebug中),它的作用是用来查看(Inspector)JavaScript中的闭包.

该扩展的作者是 .(译者注:非知名人士,这是他AMO上唯一的一个扩展)

例子

首先,让我们看一个简单的例子:

var PersonFactory = function(name, age){    return {        getName: function() { return name; },        getAge: function() { return age; },    };};var person = PersonFactory("Bob", 58);

现在,假如我们需要"检查"(inspect)person这个对象,但该操作并不是那么简单,因为该对象实际上没有任何属性.只有两个函数类型的属性使用到了闭包,通过闭包能够访问到传给PersonFactory函数的变量(参数name和age).

所以,我们不能在Firebug的命令行下执行下面的表达式:

person.name //无法获取到name属性

可是,如果你安装了FireClosure,你可以使用下面的语法:

person.%name

另外,FireClosure也集成到了DOM面板中,查看下面的截图

多出了一个新的区域"作用域变量"(scoped variables),显示出了闭包中的所有局部变量.

 
你还可以使用Watch侧边栏来检查(inspect)闭包.

 

注意

  • Firefox经常会.在调试的时候,你可以故意在相关代码周围临时添加一些无意义的eval语句,来防止这种优化(当然代码的性能会降低).(译者注:eval和with都会影响性能,随着JIT的引入,这种性能差异应该会越来越大)
  • 一些对象可能有些意外的作用域.这是因为非函数(non-function)的对象并没有真正的作用域,这种功能是通过它的函数类型的属性来实现的.

反馈

我们非常希望得到关于该功能的反馈,请告诉我们你的想法.

  • 关于该功能,我们还能做哪些改进?
  • 你喜欢该功能目前的语法吗 .%?
  • 我们应该把该功能集成到Firebug中吗?

请到中提交反馈,谢谢!

Jan 'Honza' Odvarko (译者注:他是Firebug的作者,目前自由职业,全职开发Firebug)

转载地址:http://stycl.baihongyu.com/

你可能感兴趣的文章
[C语言]进阶|指针与字符串
查看>>
检测ORACLE方法汇总数据块损坏
查看>>
Binary Tree Maximum Path Sum [leetcode] dp
查看>>
Xamarin.Android开发实践(八)
查看>>
JSON 常用数据转换
查看>>
MongoDB系列一(索引及C#如何操作MongoDB)
查看>>
解决Android SDK下载和更新失败的方法(Win系统) 和离线安装
查看>>
linux下统计当前目录下文件个数
查看>>
Struts2知多少(1) Struts2 MVC架构
查看>>
android 自定义组件-带图片的textView
查看>>
201508整理:前端工程师的(现在主要的问题、工作选择、技术前景未来)
查看>>
iOS开发-NSDictionary
查看>>
HTTPS 概述
查看>>
解决eclipse+MAVEN提示One or more constraints have not been satisfied.的问题
查看>>
nginx主配置文件 在那找怎么打开
查看>>
Android:Intent
查看>>
C++标准转换运算符const_cast
查看>>
【Cocos2d-x】Mac 在 Cocos2d-x 3.X 打包Android
查看>>
测试计划与测试方案的区别
查看>>
Hadoop 读取文件API报错
查看>>