Разработка сайтов в Докучаевске, ДНР. 5 разных способов объявления функций в jQuery

Выбор способа объявления функции JavaScript может сбить с толку новичков, и существует несколько различных вариантов синтаксиса. Каждый из них имеет преимущества, недостатки и подходящее использование, которое может вас застать врасплох.

1. Обычные функции JavaScript

Первый и самый очевидный способ объявить функцию в JavaScript — использовать functionобъявление. Функция с именем multiply (), которая принимает два параметра xи y, умножает их и возвращает значение, может быть реализована с помощью следующего синтаксиса:

function multiply (x, y) {

return x * y;

}

console.log (multiply (2, 2));

// output: 4

Функции, определенные таким образом (объявление функции), поднимаются на вершину текущей области. Можно console.log () поставить перед функцией, и она все равно будет работать.

2. Выражения функций JavaScript

Эту же функцию можно записать в виде выражения, явно задающего переменную:

const multiply = function (x, y) {

return x * y;

}

console.log (multiply (2, 2));

// output: 4

Функция не поднимается, поэтому ее можно использовать только после ее определения.

3. Определения литеральных методов объекта

Функции обрабатываются так же, как и любой другой тип значения в JavaScript, поэтому вы можете определить один из них в другом объекте. Например:

const mathLib = {

// property

PI: 3.14,

// multiply (x, y) method

multiply: function (x, y) {

return x * y;

},

// divide (x, y) method

divide: function (x, y) {

return x / y;

}

}

console.log (mathLib.multiply (2, 2));

// output: 4

Опять же, этот объектный метод может быть вызван только после того, как он был определен.

4. Стрелочные функции ES2015

Стрелочные функции не требуют functionключевого слова, но могут быть назначены только переменной или использоваться анонимно (например, в обратном вызове или обработчике событий). За параметрами, заключенными в круглые скобки ( ()), следует стрелка (=>), обозначающая функцию в следующем блоке кода:

const multiply = (x, y) => { return x * y; };

console.log (multiply (2, 2));

// output: 4

Так как у нас есть только один оператор, returnон является неявным, а скобки можно опустить для одинаковой функциональности с более коротким синтаксисом:

const multiply = (x, y) => x * y;

В случаях, когда функция имеет один параметр, эти скобки также можно убрать:

const square = x => x ** 2;

Хотя скобки по-прежнему необходимы для одного параметра:

const estimatePI = () => 22 / 7;

Стрелочные функции автоматически присваиваются thisзначению в непосредственной внешней области, поэтому нет необходимости использовать.bind (this).

5. Функции расширения jQuery

jQuery — это библиотека JavaScript, поэтому создание функций во многом аналогично. Однако функциональность jQuery можно расширить, добавив свои собственные методы. Этот jQuery.fn.extend () метод расширяет объект прототипа jQuery ($.fn), поэтому новые функции могут быть связаны с основной jQuery () функцией.

Например, следующий код определяет новые методы checkи uncheckметоды jQuery для изменения полей ввода флажков:

jQuery.fn.extend ({

// check checkboxes

check: function () {

return this.each (function () {

this.checked = true;

}) ;

},

// uncheck checkboxes

uncheck: function () {

return this.each (function () {

this.checked = false;

}) ;

}

}) ;

// check all checkboxes on the page

$ («input[type='checkbox’]»).check () ;

Сохранение функциональности

Синтаксис функций часто зависит от личных предпочтений, но постарайтесь, чтобы ваш код оставался читабельным. Возможно, лучше использовать functionутверждение, чем через несколько недель запутаться в умной, но нечитаемой мешанине из стрелок и скобок.

Делитесь нашими материалами с друзьями!

 

 

Заказать разработку сайта