Nikulio
@Nikulio
NaN !== NaN

В чем отличие объявления этих двух функций?

Всем привет
Такая запись : test(){}
и такая : let test =()=> {}
Как я понимаю, в первой мы просто глобально вяжем функцию, а во втором имеем привязку this?
Как давно в JS можно не писать function в первом примере?
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
sfi0zy
@sfi0zy Куратор тега JavaScript
Creative frontend developer
Как давно в JS можно не писать function в первом примере?

Ключевое слово function можно опускать в определенных ситуациях:
let bar = {
    test: 'A',
    foo() {
        console.log(this.test);
    }
}

bar.foo(); // A

class Bar {
    constructor() {
        this.test = 'B';
    }
    foo() {
        console.log(this.test);
    }
}

(new Bar()).foo(); // B

Разумеется для старых браузеров нужен Babel. В остальных случаях запись вида test(){} вызовет ошибку Uncaught SyntaxError: Unexpected token.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
Первая запись вообще не сработает - ошибка синтаксиса.

Вторая запись - это стрелочные функции.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы