我想跟踪页面中创建的对象总数(我正在测试/分析某些内容)。
可以这样做吗? (就像如果我按下一个按钮,如果创建了 1300 个对象,它会提醒 1300)
顺便说一句,我不是在检查当前存在多少个对象,而是在跟踪“曾经创建的”对象的总数。
我正在考虑修改Object.prototype.constructor并在那里添加一些跟踪机制,但它不是可写属性
编辑: 我想知道我是否运行了这段代码:
var Test=function(){
return {};
};
//start tracker
new Test();
//end tracker
在//start tracker 和//end tracker 之间创建了多少个对象(我怀疑有 2 个对象,但我只是想确定一下)
最佳答案
当函数 f
作为构造函数调用时 (new f()
),会创建一个新对象并作为 this
提供通话的值(value)。了解 [[Construct]]
内部方法 here .
因此,new Test()
将创建(至少)2 个对象:
- 自动创建的对象(并绑定(bind)到
this
) - 由对象字面量表达式 (
{}
) 创建的对象
关于javascript:我们如何跟踪页面中的对象总数(任何对象都将被计算在内),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5760492/