javascript:我们如何跟踪页面中的对象总数(任何对象将被计算)

时间:2011-04-22 21:57:02

标签: javascript object profiling tracking

我想跟踪页面中创建的对象总数(我正在测试/分析某些内容)。

有可能这样做吗? (如果按下按钮,如果创建了1300个对象,则会发出1300警告)

顺便说一下,我没有检查当前存在多少个对象,即时跟踪“有史以来创建的对象总数”。

我正在考虑修改 Object.prototype.constructor 并在那里添加一些跟踪机制,但它不是可写属性

编辑: 我试图找出我是否运行此代码:

var Test=function(){
  return {};
};
//start tracker
new Test();
//end tracker

在// start tracker和// end tracker之间创建了多少个对象(我怀疑是2个对象,但我只是想确定)

2 个答案:

答案 0 :(得分:1)

Chrome开发者工具包含一个“堆分析器”,可以告诉您当前目前存在多少个对象,以及他们使用了多少内存。

答案 1 :(得分:1)

当函数f作为构造函数(new f())调用时,会创建一个新对象并将其作为调用的this值提供。阅读[[Construct]]内部方法here

因此,new Test()将创建(至少)2个对象:

  • 自动创建(并绑定到this
  • 的对象
  • 由对象文字表达式({}
  • 创建的对象