Это то, что прослушивало меня с помощью отладчика Google 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