Funksiyaning call() metodi
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:
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);
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);
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");
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.
Keyingi bob
JavaScript funksiyalarining apply() metodi
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
