Почему возникает такая ошибка на мобильных браузерах (скриншот приложен)?

Функция, добавляющая propery к массивам в js, позволяющая находить объекты по ключу. Во всех десктопных браузерах работает, во встроенном в андроиде, а так же в сафари и хроме на айпаде - не работает. Отладка вот что показала. Что не так в этом коде?

Object.defineProperty(Array.prototype, "getItemByKey", {
    value: function getItemByKey(key, value) {
        var res = this.filter(_ => _[key] === value)[0];
        return res;
    }
});

Вот что говорит дебаггер в хроме, при подключении андроид-устройства

8456e47c8a9848e3a25c64038d35a160.png
  • Вопрос задан
  • 152 просмотра
Решения вопроса 1
byte916
@byte916 Автор вопроса
Вообще разобрался. Оказывается это лямбда-выражения (которые в js называются "стрелочными функциями"), они были добавлены в стандарт ECMA-2015, и пока что поддерживаются мало где

Подробнее тут https://developer.mozilla.org/ru/docs/Web/JavaScri...

Вместо этого нужно использовать простые функции

Object.defineProperty(Array.prototype, "getItemByKey", {
    value: function getItemByKey(key, value) {
        var res = this.filter(function(_) { return _[key] === value })[0];
        return res;
    }
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Бабел в помощь
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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