Kuidas saab JavaScriptis objekti konteksti muuta?
sobes.tech AI
Vastus AI-lt
On olemas mitu peamist viisi objekti this konteksti muuta JavaScriptis:
-
call(): Käivitab funktsiooni määratud kontekstiga ja argumentidega, mis edastatakse eraldi.// Näide `call()`-iga const obj = { väärtus: 42 }; function näitaVäärtust() { console.log(this.väärtus); } näitaVäärtust.call(obj); // Väljund 42 -
apply(): Käivitab funktsiooni määratud kontekstiga ja argumentidega, mis edastatakse massiivi või pseudo-massiivi kujul.// Näide `apply()`-ga const obj = { väärtus: 100 }; function liida(a, b) { console.log(this.väärtus + a + b); } liida.apply(obj, [5, 10]); // Väljund 115 -
bind(): Tagastab uue funktsiooni, mille kontekst on fikseeritud määratud objekti külge. Algne funktsioon ei käivitu kohe.// Näide `bind()`-iga const obj = { väärtus: 200 }; function tervita() { console.log("Tere, see on " + this.väärtus); } const fikseeritudTervitus = tervita.bind(obj); fikseeritudTervitus(); // Väljund "Tere, see on 200" -
Noolefunktsioonid (
=>): Ei oma omathiskonteksti. Nad pärivad konteksti leksikaalsest keskkonnast, kus need defineeriti.// Näide noolefunktsiooniga const obj = { väärtus: "objekt", näitaVäärtust: function() { const nooleFunktsioon = () => { console.log("Noolefunktsioonist: " + this.väärtus); // this viitab `obj` } nooleFunktsioon(); } }; obj.näitaVäärtust(); // Väljund "Noolefunktsioonist: objekt" -
Kutsumine objekti meetodina: Kui funktsioon kutsutakse välja objekti meetodina (
obj.metod()), muutubthiskontekstiks ise objekt (obj).// Näide meetodina kutsumisest const obj = { väärtus: "objekti meetod", näita: function() { console.log(this.väärtus); } }; obj.näita(); // Väljund "objekti meetod" -
Kutsumine konstruktorina (
new): Kasutadesnewoperaatorit uue objekti eksemplari loomiseks, viitabthiskonstruktoris loodavale eksemplarile.// Näide konstruktoriga function MyObject(väärtus) { this.väärtus = väärtus; // this viitab uuele eksemplarile } const eksemplar = new MyObject("konstruktor"); console.log(eksemplar.väärtus); // Väljund "konstruktor"
Need viisid võimaldavad kontrollida, millele this viitab funktsiooni sees, mis on oluline objekti ja meetoditega korrektseks töötamiseks JavaScriptis.