这是 Google Chrome 调试器一直困扰我的问题,我想知道是否有办法解决它。
我正在开发一个大型 Javascript 应用程序,使用了大量面向对象的 JS(使用Joose框架),当我调试代码时,我的所有类都被赋予了一个无意义的初始显示值。要了解我的意思,请在 Chrome 控制台中试试这个:
var F = function () {};
var myObj = new F();
console.log(myObj);
输出应该是一行,您可以展开该行以查看 的所有属性myObj
,但您首先看到的只是▶ F
.
我的问题是,由于我的 OO 框架,每个实例化的对象都获得相同的 'name'。它看起来负责这个的代码是这样的:
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