Hyrje:

Thirrja, aplikimi dhe lidhja janë tre metoda në JavaScript që na lejojnë të kontrollojmë kontekstin e fjalës kyçe "këtë" në një funksion. Në këtë artikull, ne do të shqyrtojmë se çfarë bën secila prej këtyre metodave dhe si t'i përdorim ato në skenarë të ndryshëm.

  1. Mënyra e thirrjes:

Metoda e thirrjes është një metodë funksioni që na lejon të thërrasim një funksion me një vlerë të dhënë "this" dhe argumente të dhëna individualisht. Sintaksa për metodën e thirrjes është si më poshtë:

function.call(thisArg, arg1, arg2, ...);

Këtu, "thisArg" është vlera që duhet t'i kalohet funksionit si "kjo" dhe "arg1", "arg2", etj., janë argumentet që duhet t'i kalohen funksionit.

Shembull:

const person = { fullName: function() { return this.firstName + " " + this.lastName; } } const person1 = { firstName:"John", lastName: "Doe" } const person2 = {firstName:"Mary", lastName: "Doe" } console.log(person.fullName.call(person1)); // output: John Doe console.log(person.fullName.call(person2)); // output: Mary Doe

2. Metoda e aplikimit:

Metoda e aplikimit është e ngjashme me metodën e thirrjes, por ndryshimi është se ajo i pranon argumentet si një grup. Sintaksa për metodën e aplikimit është si më poshtë:

function.apply(thisArg, [argsArray]);

Këtu, "thisArg" është vlera që duhet t'i kalohet funksionit si "this" dhe "argsArray" është një grup argumentesh që duhet t'i kalohen funksionit.

Shembull:

const person = { fullName: function(city, country) { return this.firstName + " " + this.lastName + ", " + city + ", " + country; } } const person1 = { firstName:"John", lastName: "Doe" } const person2 = { firstName:"Mary", lastName: "Doe" } console.log(person.fullName.apply(person1, ["Oslo", "Norway"])); // output: John Doe, Oslo, Norway console.log(person.fullName.apply(person2, ["Stockholm", "Sweden"])); // output: Mary Doe, Stockholm, Sweden

3. Metoda e lidhjes:

Metoda bind krijon një funksion të ri me të njëjtin trup si funksioni origjinal, por me një vlerë të ndryshme "kjo". Sintaksa për metodën bind është si më poshtë:

function.bind(thisArg, arg1, arg2, ...);

Këtu, "thisArg" është vlera që duhet t'i kalohet funksionit si "kjo" dhe "arg1", "arg2", etj., janë argumentet që duhet t'i kalohen funksionit.

Shembull:

const person = { fullName: function(city, country) { return this.firstName + " " + this.lastName + ", " + city + ", " + country; } } const person1 = { firstName:"John",lastName: "Doe" } const person2 = { firstName:"Mary", lastName: "Doe" } const fullName1 = person.fullName.bind(person1, "Oslo", "Norway"); const fullName2 = person.fullName.bind(person2, "Stockholm", "Sweden"); console.log(fullName1()); // output: John Doe, Oslo, Norway console.log(fullName2()); // output: Mary Doe, Stockholm, Sweden

konkluzioni:

Në këtë artikull, Duke kuptuar këto metoda, ne mund të shkruajmë kode më fleksibël dhe të ripërdorshëm në JavaScript. Metodat e thirrjes dhe aplikimit janë të dobishme kur duam të thërrasim një funksion menjëherë me një kontekst tjetër, ndërsa metoda bind është e dobishme kur duam të krijojmë një funksion të ri me një kontekst të ndryshëm që mund të thirret më vonë. Është e rëndësishme të theksohet se këto metoda nuk modifikojnë funksionin origjinal, por në vend të kësaj krijojnë një funksion të ri me një kontekst specifik. Pra, herën tjetër që ju duhet të kontrolloni fjalën kyçe "këtë" në një funksion, telefononi, aplikoni dhe provoni dhe shikoni se si ato mund të ndihmojnë në thjeshtimin e kodit tuaj.