Foros del Web » Programando para Internet » Javascript »

Alguien me puede explicar para que sirve el "this"

Estas en el tema de Alguien me puede explicar para que sirve el "this" en el foro de Javascript en Foros del Web. He estado buscando en muchas páginas distintas pero no he encontrado lo que me esperaba. Sólo encontré buenas páginas pero estaban en inglés y era ...
  #1 (permalink)  
Antiguo 17/07/2013, 08:28
Avatar de blancoarnau  
Fecha de Ingreso: junio-2013
Mensajes: 119
Antigüedad: 10 años, 10 meses
Puntos: 0
Alguien me puede explicar para que sirve el "this"

He estado buscando en muchas páginas distintas pero no he encontrado lo que me esperaba. Sólo encontré buenas páginas pero estaban en inglés y era un poco difícil entender. ¿Alguien me puede explicar para qué sirve el "this"? Leí que hacia referencia al propietario... ¿Me podéis poner un ejemplo sencillo? Muchas gracias
  #2 (permalink)  
Antiguo 17/07/2013, 09:46
 
Fecha de Ingreso: enero-2010
Mensajes: 97
Antigüedad: 14 años, 3 meses
Puntos: 3
Respuesta: Alguien me puede explicar para que sirve el "this"

Hola, This es utilizado cuando programas con objetos, asique primero debes saber qué es la programación orientada a objetos.

Una vez sabemos lo que es un objeto, cuando queremos hacer referencia a un atributo ó metodo del objeto en el que nos encontramos llamamos a this y es entonces cuando nos referimos a nosotros mismos(el objeto en el que estamos).

Te pongo un ejemplo.

Si tienes una clase (despues instanciada en objeto) llamada Persona, en la que hay 2 metodos, uno es hablar y otro es saludar, cuando estemos implementando el metodo saludar podria quedarnos algo asi:

function saludar()
{
this.hablar("hola");
}

al poner this, lo que hacemos es referirnos al método hablar de Persona, que es la clase en la que nos encontramos y a la que nos referimos como (this)


Se que hay cosas que no son correctas pero no queria liar más y prefiero que se coja la idea.

Espero haber sido de ayuda. un saludo
  #3 (permalink)  
Antiguo 17/07/2013, 09:48
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Alguien me puede explicar para que sirve el "this"

Hola:

Básicamente si es parte de una función o de un objeto, se refiere a la misma función u objeto; y si está en el manejador de algún evento en un tag, se refiere al mismo tag... un ejemplo:

<input type="button" value="yo mismo" onclick="alert(this.value)" />

Pinchando sobre el botón mostraría una alerta con "yo mismo"...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 17/07/2013, 09:49
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Alguien me puede explicar para que sirve el "this"

buenas...

this básicamente es una referencia a —y siempre será— un objeto. al objeto que hace referencia dependerá del contexto en que se utilice. en adición, this también se utiliza para crear instancias de un constructor (clases para algunos). en ese contexto, se utiliza el keyword new para crear el nuevo objeto y ahí this sería el nuevo objeto.

Código:
// ejemplo de constructor ;
function Klass(a, b){
this.a = a;
this.b = b;
}

var foo = new Klass(0, true);
var bar = new Klass('string', [10, 10]);

foo.a // integer 0 ;
foo.b // boolean true ;
bar.a // string 'string' ;
bar.b // array [10,10] ;
si en la consola ejecutas this;, debes ver que se imprime la referencia al objeto principal del intérprete; en el caso de los navegadores el objeto Window. como vez, this hace referencia a un objeto según donde se utilice. por ejemplo en un evento para un elemento, this haría referencia a ese elemento.
Código:
<button onclick="this.innerHTML = 'Thanks!';">Click</button>
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: ejemplos
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 20:19.