Funksiyaning call() metodi

ULASHISH

JavaScript call() metodi

call() metodi funksiyani ma’lum bir this bilan chaqirish uchun ishlatilishi mumkin.

call() metodi obyektga boshqa obyektga tegishli metoddan foydalanish imkonini beradi.

Shu tarzda bir xil metod turli obyektlarda ishlatilishi mumkin.

call() — murakkab mavzu.

Davom etishdan oldin this’ni tushunganingizga ishonch hosil qiling:

this kalit so‘zi


Asosiy call() sintaksisi

call() metodi obyektni argument sifatida berib funksiyani chaqirish uchun ishlatiladi.

call() metodi birinchi argument sifatida this’ni qabul qiladi.

Qo‘shimcha argumentlar vergul bilan ajratilgan ro‘yxat sifatida uzatiladi.

Sintaksis

functionName.call(this, arg1, arg2, ...);

call() yordamida this ni belgilash

call()’dan foydalanganda this nimaga ishora qilishini o‘zingiz belgilashingiz mumkin.

Quyidagi misolda greet funksiyasi salomlashish matni + this.name ni qaytaradi.

call()’dan foydalanganda this person3 obyekti bo‘lishini o‘zingiz belgilaysiz.

Misol

const person1 = { name: "John" };
const person2 = { name: "Paul" };
const person3 = { name: "Ringo" };

function greet(greeting) {
  return greeting + " " + this.name;
}

greet.call(person3, "Hello");
O‘zingiz sinab ko‘ring »

Boshqa obyektdan metodni qarzga olish

Boshqa obyektdan metodni qarzga olish uchun call() dan foydalanishingiz mumkin:

1-misol

person obyektining fullName metodini chaqiradi va uni person1 da ishlatadi:

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

// This will return "John Doe":
person.fullName.call(person1);

O‘zingiz sinab ko‘ring »

2-misol

person obyektining fullName metodini chaqiring va uni person2 da ishlating:

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

// This will return "Mary Doe"
person.fullName.call(person2);

O‘zingiz sinab ko‘ring »



Argumentlar bilan call() metodi

call() metodi argumentlarni qabul qilishi mumkin.

Argumentlar odatdagidek, vergul bilan ajratilgan holda uzatiladi:

Misol

const person = {
  fullName: function(city, country) {
    return this.firstName + " " + this.lastName + "," + city + "," + country;
  }
}

const person1 = {
  firstName:"John",
  lastName: "Doe"
}

person.fullName.call(person1, "Oslo", "Norway");

O‘zingiz sinab ko‘ring »


call() va oddiy funksiya chaqiruvi

Oddiy funksiya chaqiruvini call() chaqiruvi bilan taqqoslang.

Misol

function showName() {
  return this.name;
}

const person = { name: "John" };

showName();
showName.call(person);

call() ishlatilmasa, this person obyekti bo‘lmaydi.

call() bilan this aniq belgilanadi.


call() yangi funksiya yaratmaydi

call() metodi funksiyani darhol bajaradi.
U yangi funksiya qaytarmaydi.

Misol

function sayHello() {
  return "Hello " + this.name;
}

const person = { name: "John" };

sayHello.call(person);

Agar sizga this’ni eslab qoladigan yangi funksiya kerak bo‘lsa, o‘rniga bind() dan foydalaning.


Umumiy xatolar

  • call() darhol bajarilishini unutish

    call() qayta ishlatiladigan funksiya qaytarmaydi.
  • Argumentlarni massiv sifatida uzatish

    call() argumentlarning birma-bir sanab berilishini talab qiladi. Massivlar uchun apply() dan foydalaning.
  • this’ni tushunmasdan call() dan foydalanish

    Har doim this nimaga ishora qilishi kerakligini biling.

Viktorina

call() va oddiy funksiya chaqiruvi o‘rtasidagi asosiy farq nima?


Keyingi bob

JavaScript funksiyalarining apply() metodi


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!