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