La parola chiave this
fa riferimento all'oggetto a cui appartiene la funzione o all'oggetto window
se la funzione non appartiene a nessun oggetto.
'utilizzato nel codice OOP, per fare riferimento alla classe/oggetto la funzione appartiene Ad esempio:
function foo() {
this.value = 'Hello, world';
this.bar = function() {
alert(this.value);
}
}
var inst = new foo();
inst.bar();
This avvisi Hello, world
È possibile manipolare quale oggetto this
riferisce a usando le funzioni apply()
o call()
. (Una caratteristica molto molto utile, a volte)
var bar1 = new function() {
this.value = '#1';
}
var bar2 = new function() {
this.value = '#2';
}
function foo() {
alert(this.value);
}
foo.call(bar1); // Output: #1
foo.apply(bar2, []); // Output: #2
Perché il down vota? .. Solo per curiosità. – Atli
Anch'io sono curioso. c'è qualcosa di sbagliato nella sua spiegazione? – goh
La risposta di @Danben pone l'accento sull'utilizzo della nuova parola chiave, che crea un nuovo oggetto (il modo prototipo javascript). Senza di esso, non viene creato alcun nuovo oggetto e la funzione è "internata" (se posso dirlo) all'oggetto a cui appartiene o all'oggetto della finestra globale se nel browser. –