În acest tutorial, veți afla despre acest cuvânt cheie JavaScript cu ajutorul exemplelor.
În JavaScript, this
cuvântul cheie se referă la obiectul unde este numit.
1. acest Scop Global Interior
Când this
este utilizat singur, this
se referă la obiectul global ( window
obiectul din browsere). De exemplu,
let a = this; console.log(a); // Window () this.name = 'Sarah'; console.log(window.name); // Sarah
Aici, this.name
este la fel ca window.name
.
2. această funcție Inside
Când this
este utilizat într-o funcție, this
se referă la obiectul global ( window
obiect din browsere). De exemplu,
function greet() ( // this inside function // this refers to the global object console.log(this); ) greet(); // Window ()
3. această funcție Inside Constructor
În JavaScript, funcțiile constructor sunt utilizate pentru a crea obiecte. Când o funcție este utilizată ca funcție constructor, this
se referă la obiectul în interiorul căruia este utilizată. De exemplu,
function Person() ( this.name = 'Jack'; console.log(this); ) let person1 = new Person(); console.log(person1.name);
Ieșire
Persoană (nume: „Jack”) Jack
Aici, this
se referă la obiectul person1. De aceea, person1.name
ne dă Jack.
Notă : Când this
este utilizat cu clasele ES6, se referă la obiectul în interiorul căruia este utilizat (similar cu funcțiile constructorului).
4. această metodă Inside Object
Când this
este folosit în metoda unui obiect, this
se referă la obiectul în care se află. De exemplu,
const person = ( name : 'Jack', age: 25, // this inside method // this refers to the object itself greet() ( console.log(this); console.log(this.name); ) ) person.greet();
Ieșire
(nume: „Jack”, vârstă: 25 de ani, salut: ƒ) Jack
În exemplul de mai sus, this
se referă la person
obiect.
5. această funcție interioară interioară
Când accesați this
în interiorul unei funcții interioare (în interiorul unei metode), this
se referă la obiectul global. De exemplu,
const person = ( name : 'Jack', age: 25, // this inside method // this refers to the object itself greet() ( console.log(this); // (name: "Jack", age… ) console.log(this.age); // 25 // inner function function innerFunc() ( // this refers to the global object console.log(this); // Window (… ) console.log(this.age); // undefined ) innerFunc(); ) ) person.greet();
Ieșire
(nume: „Jack”, vârstă: 25, salut: ƒ) 25 Fereastra (…) nedefinită
Aici, this
în interior innerFunc()
se referă la obiectul global, deoarece innerFunc()
se află în interiorul unei metode.
Cu toate acestea, this.age
exteriorul innerFunc()
se referă la person
obiect.
6. această funcție Săgeată interioară
În interiorul funcției săgeată, this
se referă la domeniul de aplicare părinte. De exemplu,
const greet = () => ( console.log(this); ) greet(); // Window (… )
Funcțiile săgeată nu au propriile lor funcții this
. Când utilizați this
în interiorul unei funcții săgeată, this
se referă la obiectul său de scop părinte. De exemplu,
const greet = ( name: 'Jack', // method sayHi () ( let hi = () => console.log(this.name); hi(); ) ) greet.sayHi(); // Jack
Aici, this.name
în interior, hi()
funcția se referă la greet
obiect.
De asemenea, puteți utiliza funcția săgeată pentru a rezolva problema de a avea undefined
atunci când utilizați o funcție în interiorul unei metode (așa cum se vede în Exemplul 5). De exemplu,
const person = ( name : 'Jack', age: 25, // this inside method // this refers to the object itself greet() ( console.log(this); console.log(this.age); // inner function let innerFunc = () => ( // this refers to the global object console.log(this); console.log(this.age); ) innerFunc(); ) ) person.greet();
Ieșire
(nume: „Jack”, vârstă: 25, salut: ƒ) 25 (nume: „Jack”, vârstă: 25, salut: ƒ) 25
Aici, innerFunc()
este definit folosind funcția săgeată. Ea ia this
din domeniul său de aplicare părinte. Prin urmare, this.age
dă 25 .
Când funcția săgeată este utilizată cu this
, se referă la scopul exterior.
7. această funcție interioară cu modul strict
Când this
este utilizat într-o funcție cu mod strict, this
este undefined
. De exemplu,
'use strict'; this.name = 'Jack'; function greet() ( // this refers to undefined console.log(this); ) greet(); // undefined
Notă : Când utilizați this
o funcție în modul strict, puteți utiliza apelul funcției JavaScript ().
De exemplu,
'use strict'; this.name = 'Jack'; function greet() ( console.log(this.name); ) greet.call(this); // Jack
Când treceți this
cu call()
funcția, greet()
este tratat ca metoda this
obiectului (obiect global în acest caz).