Sobes.tech
Middle

JavaScript-те call, apply және bind әдістерінің айырмашылығы неде?

sobes.tech AI

AI-дан жауап

Әдіс Мақсаты Аргументтерді беру Қайтарылатын мәні
call Функцияны берілген контекст this және жеке аргументтермен шақырады. Контекст this кейін жеке аргументтер ретінде беріледі. Функцияның орындалу нәтижесі.
apply Функцияны берілген контекст this және массив ретінде берілген аргументтермен шақырады. Массив (немесе псевдомассив) ретінде this кейін беріледі. Функцияның орындалу нәтижесі.
bind жаңа функцияны қайтарады, ол кейін шақырылғанда берілген контекст this және қажет болған жағдайда алдын ала берілген аргументтермен болады. bind шақырғанда this кейін жеке аргументтер ретінде беріледі. Байланыстырылған контексті мен аргументтері бар жаңа функция.
// call қолдану мысалы
const obj = { name: 'Alice' };
function greet(greeting, punctuation) {
  console.log(`${greeting}, ${this.name}${punctuation}`);
}
greet.call(obj, 'Hello', '!'); // Шығарады: Hello, Alice!
// apply қолдану мысалы
const obj2 = { job: 'Developer' };
function describe(title, company) {
  console.log(`Мен ${title} маманым, ${company}-да жұмыс істеймін.`);
}
const args = ['Frontend', 'TechCorp'];
describe.apply(obj2, args); // Шығарады: Мен Frontend маманым, TechCorp-да жұмыс істеймін.
// bind қолдану мысалы
const obj3 = { city: 'New York' };
function showLocation() {
  console.log(`Менің қалам ${this.city}.`);
}
const boundShowLocation = showLocation.bind(obj3);
boundShowLocation(); // Шығарады: Менің қалам New York.

// алдын ала аргументпен bind мысалы
const obj4 = { value: 10 };
function addValue(num) {
  console.log(this.value + num);
}
const boundAddFive = addValue.bind(obj4, 5);
boundAddFive(); // Шығарады: 15