para obtener un puntero a la función de creación de instancias (que no es una "clase", pero es el tipo ), utilice obj.constructor
donde obj
es cualquier objeto.
En JavaScript no hay clases. Como tal, no hay instancias de clase en JavaScript. Solo hay objetos Los objetos heredan de otros objetos (sus llamados prototipos). Lo que estás haciendo en tu código es literalmente definir un objeto T, cuyo atributo Q es otro objeto, cuyo atributo W es otro objeto, cuyo atributo C es una función.
Cuando está "creando una nueva instancia de T.Q.W.C", en realidad se está llamando la única función T.Q.W.C como constructor. Una función denominada como un constructor devolverá un nuevo objeto en la que se denomina función de constructor (es decir, con this
beeing el nuevo objeto, como constructorFunction.apply(newObject, arguments);
). Ese objeto devuelto tendrá una propiedad oculta constructor
que apuntará a la función invocada como constrcutor para crear el objeto. Además, hay una función de idioma que le permite probar si se utilizó una función determinada como función constructora para un objeto utilizando el operador instanceof
.
por lo que podría hacer lo siguiente:
console.log(x instanceof T.Q.W.C);
O
console.log(x.constructor === T.Q.W.C);
Yo creo que hay que reformular la pregunta. 'x' * es * una instancia y sí, usar' new' es bastante confiable para obtener una instancia. Tal vez estás buscando 'instancof', para obtener el tipo de la instancia? https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/instanceof –