Назад к вопросам
Junior
90
questionbank
Что такое стрелочная функция?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Стрелочная функция (arrow function) — это синтаксически более краткая форма для написания функций в JavaScript (ES6+).
Ключевые особенности:
- Синтаксис:
(параметры) => выражениеили{ тело функции }. this: Лексически связываетthis, то есть берет его из окружающего контекста, а не создает свой собственный. Это главное отличие от обычных функций.- Отсутствие
arguments: Нет собственного объектаarguments. Можно использовать rest-параметры (...args). - Отсутствие
prototype: Не имеют свойстваprototypeи не могут использоваться в качестве конструкторов (new). - Автоматический
return: Если тело функции состоит из одного выражения, результат этого выражения возвращается неявно (без ключевого словаreturn).
Примеры:
// Обычная функция
function sum(a, b) {
return a + b;
}
// Стрелочная функция (краткий синтаксис)
const add = (a, b) => a + b;
// Стрелочная функция с блоком кода
const multiply = (a, b) => {
const result = a * b;
return result;
};
Сравнение this:
class MyClass {
constructor() {
this.value = 10;
}
// Обычный метод - this ссылается на экземпляр MyClass
method() {
console.log(this.value); // 10
}
// Стрелочная функция - this ссылается на this из constructor (экземпляр MyClass)
arrowMethod = () => {
console.log(this.value); // 10
}
callbackExample() {
// Обычная функция теряет контекст this
setTimeout(function() {
console.log(this); // Window или undefined в строгом режиме
}, 100);
// Стрелочная функция сохраняет контекст this
setTimeout(() => {
console.log(this.value); // 10
}, 100);
}
}