изменить функцию стрелки на нормальную функцию? - PullRequest
0 голосов
/ 01 октября 2019

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

Вот мое решение

  $('#interactive-layers').on('click', ".go_back", function () {
        videohistory.pop();
        var hist = videohistory[videohistory.length - 1];
        videohistory.pop();


        if (hist[0].movieid == 4) {

            let movieData = movies.find(({
                movieid
            }) => movieid == 23);
            hist.push(movieData);
            playVideo(hist[3], hist[1], hist[2]);
        } else {
            playVideo(hist[0], hist[1], hist[2]);
        }
    });

Это прекрасно работает в Chrome, Safari, Firefox, но в Internet Explorer, Я получаю следующую ошибку.

SCRIPT1003: Expected ':'

Как изменить эту функцию, чтобы она могла быть совместима со всеми браузерами?

Ответы [ 2 ]

1 голос
/ 01 октября 2019

Вам нужно преобразовать его в обычный function вместо функции стрелки. Но имейте в виду, что вы использовали деструктурирование аргументов в array.find(), поэтому вам нужно правильно обрабатывать его при конвертации, например:

let movieData = movies.find(function(entry) { return entry.movieid == 23; });

Кроме того, я бы не стал использовать let для созданияуверен, что он будет работать во всех браузерах IE. MDN заявляет, что он частично поддерживает IE, поэтому ... используйте var вместо поддержки всех браузеров IE.

Еще одна вещь, упомянутая выше, заключается в том, что array.find() сам по себе не поддерживается IE, поэтому вам необходимоимпортировать полифилл

1 голос
/ 01 октября 2019

попробуй это,

$('#interactive-layers').on('click', ".go_back", function () {
        videohistory.pop();
        var hist = videohistory[videohistory.length - 1];
        videohistory.pop();

        if (hist[0].movieid == 4) {

            // Here I change the Arrow function with the es5 normal one.
            /*
               let movieData = movies.find(({ movieid }) => movieid == 23);
             */
            let movieData = movies.find(function(movieid){
              return movieid == 23;
            });
            hist.push(movieData);
            playVideo(hist[3], hist[1], hist[2]);
        } else {
            playVideo(hist[0], hist[1], hist[2]);
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...