Foros del Web » Programando para Internet » Javascript »

Duda con objeto

Estas en el tema de Duda con objeto en el foro de Javascript en Foros del Web. Estaba checkando un code, y me llamo la atencion que usa un regex pero no se porque funciona como un objeto. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript ...
  #1 (permalink)  
Antiguo 04/09/2011, 17:14
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 16 años, 5 meses
Puntos: 35
Duda con objeto

Estaba checkando un code, y me llamo la atencion que usa un regex pero no se porque funciona como un objeto.
Código Javascript:
Ver original
  1. var animal = /cat/;
  2.  
  3.     animal.speak = function speak() {
  4.       console.log("The " + this + " says miaow");
  5.     };
  6.     animal.speak();

Pero a su vez cuando en vez de regex uso un string tengo un error:"animal.speak is not a function"
Código Javascript:
Ver original
  1. var animal = 'gato';
Pueden explicarme eso?¿?
__________________
I am Doyle please insert code.
  #2 (permalink)  
Antiguo 04/09/2011, 17:29
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 5 meses
Puntos: 310
Respuesta: Duda con objeto

Eso se debe a que los string (junto con los números y los booleanos) son un tipo de dato primitivo, y no les puedes añadir propiedades/métodos a no ser que uses el constructor. Sin embargo, a los arrays, regexps, dates, functions... sí. Ej:
Código Javascript:
Ver original
  1. var a = 'String literal';
  2. a.b = 'Esto no va funcionar...';
  3. var a = new String('String con el constructor');
  4. a.b = 'Esto sí se ve';
  5.  
  6. var arr = []; // Array literal
  7. arr.prop = 'Esto funciona aunque sea un array literal, porque no es un tipo de dato primitivo';
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 04/09/2011, 19:15
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 16 años, 5 meses
Puntos: 35
Respuesta: Duda con objeto

tnks _cronos2 !!
__________________
I am Doyle please insert code.
  #4 (permalink)  
Antiguo 04/09/2011, 22:02
 
Fecha de Ingreso: julio-2011
Ubicación: Zapopan, Jal. MX
Mensajes: 316
Antigüedad: 13 años, 4 meses
Puntos: 32
Respuesta: Duda con objeto

Hola que tal, también cuando desees agregar un método que funcione para todos los string(por ejemplo), puedes hacerlo accediendo directamente al constructor sin necesidad de crear el objeto primero, es decir, así:

Código Javascript:
Ver original
  1. String.prototype.alert = function() { alert( this ); };
  2. "hola".alert();
  3. "queso".alert();

Saludos.

Etiquetas: objeto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:38.