Синтаксис обработчика jQuery onclick

#jquery #onclick #event-handling

#jquery #onclick #обработка событий

Вопрос:

Публикуя другой вопрос в SO, я заметил объявление на стороне, которое выглядело следующим образом:

 $('#apply-now').on('click', () => {new GreatCareer()});
/* Invoke and submit your resume */
  

Теперь этот бит с () => {new GreatCareer()} новым для меня. Я видел анонимные или именованные функции в этом месте. Что именно означает этот синтаксис?

Ответ №1:

Это новый синтаксис функций стрелок ECMAScript 6:

     var a = [
      "Hydrogen",
      "Helium",
      "Lithium",
      "Beryl­lium"
    ];

    // initial sytax
    var a2 = a.map(function(s){ return s.length });

    // arrow function sytax
    var a3 = a.map( s => s.length );
  

// Функция без параметров требует круглых скобок: () => {
заявления }

таким () образом, они представляют пустые параметры функции, и в соответствии с новым синтаксисом function ключевое слово пропущено.

ИТАК $('#apply-now').on('click', () => {new GreatCareer()});

подразумевает

$('#apply-now').on('click', function(){ return new GreatCareer(); });

Ответ №2:

Это лямбда-нотация, просто еще один способ определения функции.

Более подробная информация здесь: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions