Esto es algo que me ha estado molestando con el depurador de Google Chrome y me preguntaba si habría alguna forma de solucionarlo.Cómo establecer dinámicamente un nombre de función/objeto en Javascript tal como se muestra en Chrome
Estoy trabajando en una aplicación de gran Javascript, utilizando una gran cantidad de JS orientados a objetos (utilizando el marco Joose), y cuando puedo depurar mi código, todas mis clases se les da un valor de visualización inicial sin sentido. Para ver lo que quiero decir, probar esto en la consola de Chrome:
var F = function() {};
var myObj = new F();
console.log(myObj);
La salida debe ser una sola línea que se puede ampliar para ver todas las propiedades de myObj
, pero el primero que se ve es sólo ▶ F
.
Mi problema es que debido a mi marco OO, todos los objetos instanciados recibe el mismo 'nombre'. El código que se ve es responsable de esto es así:
getMutableCopy : function (object) {
var f = function() {};
f.prototype = object;
return new f();
}
Lo que significa que en el depurador, la vista inicial es siempre ▶ f
.
Ahora, yo realmente no quiero estar cambiando nada acerca de cómo Joose ejecuta objetos (getMutableCopy ...?), pero si había algo que podía añadir a esto para que pudiera ofrecer mi propia nombre, eso sería genial.
Algunas cosas que he mirado, pero no pudo llegar a ninguna parte con:
> function foo {}
> foo.name
"foo"
> foo.name = "bar"
"bar"
> foo.name
"foo" // <-- looks like it is read only
Véase también [? Nombre de la función dinámica en javascript] (https://stackoverflow.com/questions/ 5905492/dynamic-function-name-in-javascript/41854075 # 41854075) – gimpf