En JavaScript / jQuery, si tengo alert
algún objeto, obtengo [object]
o [object Object]
¿Hay alguna forma de saber?
¿Cuál es la diferencia entre estos dos objetos?
que tipo de objeto es este
qué propiedades contiene este objeto y valores de cada propiedad
?
javascript
jquery
Saiful
fuente
fuente
Respuestas:
Puede buscar las claves y los valores de un objeto invocando el
for in
bucle nativo de JavaScript :o usando el
.each()
método de jQuery :Con la excepción de seis tipos primitivos , todo en ECMA- / JavaScript es un objeto. Matrices; funciones; todo es un objeto. Incluso la mayoría de esas primitivas son en realidad también objetos con una selección limitada de métodos. Se lanzan en objetos debajo del capó, cuando es necesario. Para conocer el nombre de la clase base, puede invocar el
Object.prototype.toString
método en un objeto, como este:Lo anterior saldrá
[object Array]
.Hay varios otros nombres de las clases, como
[object Object]
,[object Function]
,[object Date]
,[object String]
,[object Number]
,[object Array]
, y[object Regex]
.fuente
typeof new String("foo");
produce "objeto", es un valor primitivo envuelto, mientras quetypeof "foo";
produce "cadena". Véase tambiénvar str = 'primitive'; str.foo = 'bar'; /*wouldn't work*/
mientras quevar oStr = new String('string object'); oStr.foo = 'bar'; /*works*/
si va a abstraerlo y llamarlos a todos objetos, entonces puede salirse con la suya pensando en los primitivos como objetos primitivos, pero no es equivalente a la superclase de verdaderos objetos JavaScript.console.log
para inspeccionar objetosPara obtener una lista de propiedades / valores del objeto:
En Firefox - Firebug:
JS estándar para obtener claves de objeto prestadas de Slashnick :
Ediciones:
<object>
en lo anterior debe reemplazarse con la referencia variable al objeto.console.log()
se va a utilizar en la consola, si no está seguro de qué es, puede reemplazarlo con unalert()
fuente
La respuesta simple es que
[object]
indica un objeto host que no tiene una clase interna. Un objeto de host es un objeto que no forma parte de la implementación de ECMAScript con la que está trabajando, pero que el host lo proporciona como una extensión. El DOM es un ejemplo común de objetos host, aunque en la mayoría de las implementaciones más recientes los objetos DOM heredan del Object nativo y tienen nombres de clase internos (como HTMLElement , Window , etc.). ActiveXObject, propiedad de IE, es otro ejemplo de objeto host.[object]
se ve más comúnmente al alertar a los objetos DOM en Internet Explorer 7 y versiones anteriores, ya que son objetos de host que no tienen un nombre de clase interno.Puede obtener el "tipo" (clase interna) de objeto usando
Object.prototype.toString
. La especificación requiere que siempre devuelva una cadena en el formato[object [[Class]]]
, donde[[Class]]
está el nombre de la clase interna como Object , Array , Date , RegExp , etc. Puede aplicar este método a cualquier objeto (incluidos los objetos host), usandoMuchas
isArray
implementaciones usan esta técnica para descubrir si un objeto es realmente una matriz (aunque no es tan robusto en IE como en otros navegadores ).En ECMAScript 3, puede iterar sobre propiedades enumerables mediante un
for...in
bucle. Tenga en cuenta que la mayoría de las propiedades integradas no son enumerables. Lo mismo ocurre con algunos objetos host. En ECMAScript 5, puede obtener una matriz que contenga los nombres de todas las propiedades no heredadas utilizandoObject.getOwnPropertyNames(obj)
. Esta matriz contendrá nombres de propiedad enumerables y no enumerables.fuente
Espero que esto no cuente como spam. Humildemente terminé escribiendo una función después de interminables sesiones de depuración: http://github.com/halilim/Javascript-Simple-Object-Inspect
Uso
o
fuente
Obtén FireBug para Mozilla Firefox.
utilizar
console.log(obj);
fuente
console.log
es igual de efectivo, puede hacer clic en el objeto en el registro para obtener el "dir" de todos modos ...Spotlight.js es una gran biblioteca para iterar sobre el objeto de la ventana y otros objetos del host en busca de ciertas cosas.
Te gustará por esto.
fuente
Objeto de escaneo para la primera entrada de un accesorio determinado:
fuente