JavaScript to

V tej vadnici boste s pomočjo primerov spoznali JavaScript za to ključno besedo.

V JavaScript se thisključna beseda nanaša na objekt, kamor je poklicana.

1. to Inside Global Scope

Kadar thisse uporablja samostojno, se thisnanaša na globalni objekt ( windowobjekt v brskalnikih). Na primer

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

Tukaj this.nameje enako kot window.name.

2. to funkcijo Inside

Ko thisse uporablja v funkciji, se thisnanaša na globalni objekt ( windowobjekt v brskalnikih). Na primer

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

3. ta funkcija konstruktorja znotraj

V JavaScript se konstruktorske funkcije uporabljajo za ustvarjanje predmetov. Ko se funkcija uporablja kot konstruktorska funkcija, se thisnanaša na objekt, znotraj katerega se uporablja. Na primer

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

Izhod

 Oseba (ime: "Jack") Jack

Tu se thisnanaša na predmet person1. Zato person1.namenam daje Jack.

Opomba : Ko thisse uporablja z razredi ES6, se nanaša na objekt, znotraj katerega se uporablja (podobno kot funkcije konstruktorja).

4. ta metoda Inside Object

Ko thisse uporablja znotraj metode predmeta, se thisnanaša na objekt, v katerem leži. Na primer

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

Izhod

 (ime: "Jack", starost: 25 let, pozdrav: ƒ) Jack

V zgornjem primeru se thisnanaša na personobjekt.

5. to Notranja notranja funkcija

Ko dostopate thisdo notranje funkcije (znotraj metode), se thissklicuje na globalni objekt. Na primer

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

Izhod

 (ime: "Jack", starost: 25, pozdrav: ƒ) 25 Okno (…) nedefinirano

Tu se thisnotranjost innerFunc()nanaša na globalni objekt, ker innerFunc()je znotraj metode.

Vendar se this.agezunaj innerFunc()nanaša na personpredmet.

6. to funkcijo Inside Arrow

Znotraj funkcije puščice se thisnanaša na nadrejeni obseg. Na primer

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

Puščične funkcije nimajo svojih this. Ko uporabljate thisfunkcijo puščice, se thissklicuje na njen nadrejeni objekt obsega. Na primer

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

Tu this.namese hi()funkcija znotraj nanaša na greetobjekt.

Funkcijo puščice lahko uporabite tudi za rešitev težave, undefinedko imate funkcijo znotraj metode (kot je prikazano v primeru 5). Na primer

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

Izhod

 (ime: "Jack", starost: 25, pozdrav: ƒ) 25 (ime: "Jack", starost: 25, pozdrav: ƒ) 25

Tu innerFunc()je definirana s pomočjo puščice. Vzame thisiz nadrejenega obsega. Zato this.agedaje 25 .

Ko se s puščico uporablja funkcija this, se nanaša na zunanji obseg.

7. ta funkcija Inside s strogim načinom

Če thisse uporablja v funkciji s strogim načinom, thisje undefined. Na primer

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

Opomba : Pri uporabi thisznotraj funkcije s strogim načinom lahko uporabite klic funkcije JavaScript ().

Na primer

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

Ko prenesete thiss call()funkcijo, greet()se obravnava kot metoda thispredmeta (v tem primeru globalni objekt).

Zanimive Članki...