Изучаю JavaScript, в Википедии встретил пример описания многомерных массивов
код такой:
// Создание двумерного массива чисел:
var array = [
[11, 12, 13, 14, 15, 16], // Первая строка-массив
[21, 22, 23, 24, 25, 26], // Вторая
[31, 32, 33, 34, 35, 36] // Третья
];
// Вывод массива на консоль:
array.forEach((subArray) => { // Для каждого под-массива,
subArray.forEach((item) => { // для каждого его элемента,
console.log(item); // — вывести этот элемент на консоль.
});
});
Вопрос: что означает оператор => (оператор ли это вообще)?
Читаю Д. Флэнагана "JavaScript. Подробное руководство", в тексте данный оператор не встречается, в сети тоже не смог найти описание.
UPD: Спасибо за ответы!
Ответ
Данный оператор называется стрелочной функцией. Появился с ECMA2015.
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Functions/Arrow_functions
Стрелочные функции помогают существенно сократить код, ведь
var a = a.map( s => s.length );
выглядит куда лучше, чем
var a = a.map(function(s){ return s.length } );
Стрелочными функциями решают еще одну наболевшую проблему JavaScript: необходимость передавать this в контекст исполнения функции. Каждая функция имеет свой контекст, поэтому приходится либо присваивать this переменной:
var that = this;
var filter1 = function(){
// this != that
return that.visible;
};
Либо использовать bind для привязки контекста:
var filter1 = (function(){
return this.visible;
}).bind( this );
Со стрелочной функцией все значительно проще и компактнее, потому что она не создает свой контекст this:
var filter1 = () => this.visible;
Комментариев нет:
Отправить комментарий