这是谷歌 Chrome 调试器一直困扰我的问题,我想知道是否有办法解决它。
我正在开发一个大型 Javascript 应用程序,使用大量面向对象的 JS(使用 Joose 框架),当我调试我的代码时,我的所有类都被赋予了一个无意义的初始显示值。要了解我的意思,请在 Chrome 控制台中尝试以下操作:
var F = function () {};
var myObj = new F();
console.log(myObj);
输出应该是一行,您可以展开它以查看 myObj
的所有属性,但您首先看到的只是 ▶ F
。
我的问题是,由于我的 OO 框架, 实例化的每个对象都具有相同的“名称” 。它看起来对此负责的代码是这样的:
getMutableCopy : function (object) {
var f = function () {};
f.prototype = object;
return new f();
}
这意味着在调试器中,初始视图始终是 ▶ f
。
现在,我真的不想改变任何有关 Joose 如何 实例化对象 (getMutableCopy…?) 的内容,但如果我可以添加一些东西以便我可以提供自己的名字,那就太好了。
我看过的一些东西,但无处可去:
> function foo {}
> foo.name
"foo"
> foo.name = "bar"
"bar"
> foo.name
"foo" // <-- looks like it is read only
原文由 nickf 发布,翻译遵循 CC BY-SA 4.0 许可协议
可以解决问题,并且是性能最高的解决方案。也没有评估。