Изучаю 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. Подробное руководство", в тексте данный оператор не встречается, в сети тоже не смог найти описание.
Ответ Данный оператор называется стрелочной функцией. Появился с 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