Это то, что меня беспокоит в отладчике Google Chrome, и мне было интересно, есть ли способ решить эту проблему.
Я работаю над большим приложением Javascript, использующим много объектно-ориентированного JS (с использованием структуры Joose ), и когда я отлаживаю свой код, всем моим классам присваивается бессмысленное начальное отображаемое значение. Чтобы понять, что я имею в виду, попробуйте это в консоли Chrome:
var F = function () {};
var myObj = new F();
console.log(myObj);
Вывод должен быть одной строкой, которую можно развернуть, чтобы увидеть все свойства myObj
, но первое, что вы увидите, это просто ▶ F
.
Моя проблема состоит в том, что из-за моей объектно-ориентированной структуры каждый экземпляр объекта получает одно и то же «имя» . Код, который, как он выглядит, отвечает за это:
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