TGViewer
Frontend | Вопросы собесов Frontend | Вопросы собесов @easy_javascript_ru · 17.6K subscribers
Post #332 8.12K
Что такое call, apply и bind ?
Спросят с вероятностью 7%

call, apply и bind — это методы, которые позволяют управлять контекстом (this) функции. Они полезны для вызова функции с определённым значением this и передачи аргументов. Вот как они работают:

1️⃣call

Вызывает функцию с указанным значением this и аргументами, переданными по отдельности.

Синтаксис:
func.call(thisArg, arg1, arg2, ...);


Пример:
function greet(greeting, punctuation) {
console.log(greeting + ', ' + this.name + punctuation);
}

const user = { name: 'Alice' };

greet.call(user, 'Hello', '!'); // Hello, Alice!


2️⃣apply

Похож на call, но аргументы передаются в виде массива.

Синтаксис:
func.apply(thisArg, [arg1, arg2, ...]);


Пример:
function greet(greeting, punctuation) {
console.log(greeting + ', ' + this.name + punctuation);
}

const user = { name: 'Alice' };

greet.apply(user, ['Hello', '!']); // Hello, Alice!


3️⃣bind

Создаёт новую функцию, которая при вызове будет иметь указанный контекст this и аргументы, переданные при создании. Он не вызывает функцию сразу, а возвращает новую функцию.

Синтаксис:
const boundFunction = func.bind(thisArg, arg1, arg2, ...);


Пример:
function greet(greeting, punctuation) {
console.log(greeting + ', ' + this.name + punctuation);
}

const user = { name: 'Alice' };

const boundGreet = greet.bind(user, 'Hello');
boundGreet('!'); // Hello, Alice!


Сравнение методов

1️⃣`call` и `apply`:
✅Используются для немедленного вызова функции с заданным this.
✅call принимает аргументы по отдельности.
✅apply принимает аргументы в виде массива.

7️⃣`bind`:
✅Возвращает новую функцию с заданным this, которую можно вызвать позже.
✅Полезен для создания функции с постоянным контекстом.

Краткий ответ:

✅`call` вызывает функцию с указанным значением this и аргументами, переданными по отдельности.
✅`apply` вызывает функцию с указанным значением this и аргументами, переданными в виде массива.
✅`bind` создаёт новую функцию с указанным значением this и аргументами, которую можно вызвать позже.

🔥 ТОП ВОПРОСОВ С СОБЕСОВ

🔒 База собесов | 🔒 База тестовых
  • 👍 45
  • ❤ 13
  • 👀 1
More from @easy_javascript_ru
  1. Oct 16, 2026🤔 Что такое meta теги? Meta-теги – это специальные HTML-теги, которые содержат метаинформ…
  2. Oct 15, 2026Post #3044
  3. Oct 15, 2026🤔 Какие преимущества у di? Dependency Injection (DI) – это паттерн проектирования, которы…
  4. Oct 14, 2026🤔 Зачем создавались библиотеки react и другие? Библиотеки, такие как React, создавались д…
  5. Oct 13, 2026🤔 Что такое репозиторий? Это хранилище кода, файлов и их истории изменений. Используется…
  6. Oct 13, 2026🤔 Как мы можем замерить скорость работы участка кода с date.Now? В JavaScript можно замер…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →