JavaScript to

V tomto výučbe sa pomocou príkladov dozviete o tomto kľúčovom slove v jazyku JavaScript.

V JavaScripte thiskľúčové slovo odkazuje na objekt, kde sa nazýva.

1. tento globálny rozsah

Ak thissa používa samostatne, thisodkazuje na globálny objekt ( windowobjekt v prehľadávačoch). Napríklad,

 let a = this; console.log(a); // Window () this.name = 'Sarah'; console.log(window.name); // Sarah

Tu this.nameje to isté ako window.name.

2. táto vnútorná funkcia

Keď thissa používa vo funkcii, thisodkazuje na globálny objekt ( windowobjekt v prehľadávačoch). Napríklad,

 function greet() ( // this inside function // this refers to the global object console.log(this); ) greet(); // Window ()

3. táto funkcia Inside Constructor

V JavaScripte sa na vytváranie objektov používajú funkcie konštruktora. Keď sa funkcia používa ako funkcia konštruktora, thisodkazuje na objekt, v ktorom sa používa. Napríklad,

 function Person() ( this.name = 'Jack'; console.log(this); ) let person1 = new Person(); console.log(person1.name);

Výkon

 Osoba (meno: „Jack“) Jack

Tu sa thisodkazuje na objekt person1. Preto person1.namenám dáva Jack.

Poznámka : Ak thissa používa s triedami ES6, vzťahuje sa na objekt, v ktorom sa používa (podobne ako funkcie konštruktora).

4. táto metóda Inside Object

Keď thissa používa v metóde objektu, thisodkazuje na objekt, v ktorom leží. Napríklad,

 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();

Výkon

 (meno: „Jack“, vek: 25, pozdravujem: ƒ) Jack

Vo vyššie uvedenom príklade sa thisodkazuje na personobjekt.

5. táto vnútorná vnútorná funkcia

Keď vstúpite thisdo vnútornej funkcie (vo vnútri metódy), thisznamená to globálny objekt. Napríklad,

 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();

Výkon

 (meno: „Jack“, vek: 25, pozdrav: ƒ) 25 Okno (…) nedefinované

Tu sa thisvo vnútri innerFunc()odkazuje na globálny objekt, pretože innerFunc()je vo vnútri metódy.

Avšak this.agemimo innerFunc()odkazuje na personobjekt.

6. táto funkcia Inside Arrow

Vo vnútri funkcie šípky sa thisodkazuje na nadradený rozsah. Napríklad,

 const greet = () => ( console.log(this); ) greet(); // Window (… )

Funkcie šípok nemajú svoje vlastné this. Keď použijete thisfunkciu šípky, thisodkazuje sa na jej nadradený objekt rozsahu. Napríklad,

 const greet = ( name: 'Jack', // method sayHi () ( let hi = () => console.log(this.name); hi(); ) ) greet.sayHi(); // Jack

Tu this.namevo vnútri hi()funkcie odkazuje na greetobjekt.

Môžete tiež použiť funkciu šípky na vyriešenie problému s undefinedpoužívaním funkcie v metóde (ako je uvedené v príklade 5). Napríklad,

 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();

Výkon

 (meno: „Jack“, vek: 25 rokov, pozdravuje: ƒ) 25 (meno: „Jack“, vek: 25 rokov, pozdravuje: ƒ) 25

Tu innerFunc()je definované pomocou funkcie šípky. Berie to thisz jeho materskej pôsobnosti. Preto this.agedáva 25 .

Keď sa používa funkcia šípky this, znamená to vonkajší rozsah.

7. táto vnútorná funkcia s prísnym režimom

Keď thissa používa vo funkcii s prísnym režimom, thisje undefined. Napríklad,

 'use strict'; this.name = 'Jack'; function greet() ( // this refers to undefined console.log(this); ) greet(); // undefined

Poznámka : Pri použití thisvo vnútri funkcie s prísnym režimom môžete použiť JavaScript Function call ().

Napríklad,

 'use strict'; this.name = 'Jack'; function greet() ( console.log(this.name); ) greet.call(this); // Jack

Pri odovzdaní thissa call()funkcie, greet()je považovaná za metódu k thisobjektu (globálne objekt v tomto prípade).

Zaujímavé články...