Middle
25
Функцияның контекстін қалай орнатуға болады? call, apply және bind арасындағы айырмашылық неде?
Сұралған компаниялар
X-Notes
AI-дан жауап
sobes.tech AI
В JavaScript контекст функции (значение this) можно задать явно с помощью методов call, apply и bind.
callвызывает функцию сразу, передавая контекст и аргументы по отдельности.applyвызывает функцию сразу, передавая контекст и аргументы в виде массива.bindвозвращает новую функцию с привязанным контекстом, которую можно вызвать позже.
Пример:
function greet(greeting) {
console.log(`${greeting}, меня зовут ${this.name}`);
}
const person = { name: 'Иван' };
greet.call(person, 'Привет'); // Привет, меня зовут Иван
greet.apply(person, ['Здравствуйте']); // Здравствуйте, меня зовут Иван
const boundGreet = greet.bind(person);
boundGreet('Хай'); // Хай, меня зовут Иван
Таким образом, call и apply вызывают функцию сразу с заданным контекстом, а bind создаёт новую функцию с привязанным контекстом для вызова позже.