是否可以从代码中访问JS内存中对象?是否有可用的内部存储器检查器?我可以从代码中列出具有给定原型(或类型)的对象吗?
// EXAMPLE
function Kitten(name) { this.name = name; }
var kitten = new Kitten('furry');
// ...
// Any features like this?
var kittens = ListObjectsOfType(Kitten);
// Or this?
var kittens2 = ListObjectsWithPrototype(kitten.prototype);
我主要对Google的V8实施或ES6(Harmony)规范感兴趣。 (我也很欣赏其他技术。)
答案 0 :(得分:0)
您可以为此创建一个功能。类似的东西:
function ListObjectsOfType(type) {
var result = [];
for( var w in window ) {
var val = window[w];
if( val instanceof type )
result.push(val);
}
return result;
}
如果您从Chrome控制台调用此功能,则可以清楚地检查/折叠生成的对象。 您可以将其扩展为遍历所有窗口变量(但您希望跳过默认值)。 我认为根据定义,不可能检查,例如以下内容:
function SomeObj() {
var b = new Kitten('kitty');
}
new SomeObj();
我希望内存堆有这个obj,但它不会通过JS可用/可检测到。