Это то, что меня беспокоило отладчиком Google Chrome, и мне было интересно, есть ли способ решить эту проблему.
Я работаю над большим Javascript-приложением, использующим множество объектно-ориентированных JS (использующих Joose framework), и когда я отлаживаю свой код, все мои классы получают бессмысленные инициалы отображаемое значение. Чтобы понять, что я имею в виду, попробуйте это в консоли 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