• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Poprawa kodu pod ECMASCRIPT6

0 głosów
361 wizyt
pytanie zadane 11 marca 2020 w JavaScript przez PoProstuTomasz Początkujący (470 p.)

Cześć,

Mam dość zapewne trywialne pytanie, jednak walczę już chwilę i nie mogę sobie poradzić, a z JS nie mam wiele do czynienia ostatnio.
Mam kod:
 

<script>
  window.addEventListener("message",e=>{if("resizeOpineoIframe"===e.data[0])
  {
    var   i=document.getElementById("opineo-opinions-widget");
          i.height="",i.height=e.data[1]+"px"}},!1);
</script>


Kompilator wyrzuca mi błąd.
 

Błąd w wierszu 3, znak 37: This language feature is only supported for ECMASCRIPT6 mode or better: arrow function.

Próbowałem deklarować funkcję jakiś poza blokiem if, ale bezskutecznie. Może macie jakies rozwiązanie aby kompilator to przepuścił?
Z góry dzięki.

komentarz 11 marca 2020 przez adrian17 Mentor (354,120 p.)
Ale co to jest za kompilator?
komentarz 11 marca 2020 przez PoProstuTomasz Początkujący (470 p.)
Próbuję ten kod wszczepić poprzez Google Tag Managera, i "googlowy" kompilator mi wyrzuca ten błąd

2 odpowiedzi

+2 głosów
odpowiedź 11 marca 2020 przez Tomek Sochacki Ekspert (227,490 p.)
Zmien po prostu arrow function na zwykłą deklaracje function(e) {}
komentarz 11 marca 2020 przez Ehlert Ekspert (215,010 p.)

Warto zauważyć również fakt, że addEventListener nie jest najlepszym miejscem do używania arrow functions wink

komentarz 12 marca 2020 przez Tomek Sochacki Ekspert (227,490 p.)
Niby dlaczego? Uzasadnij proszę.
komentarz 12 marca 2020 przez Ehlert Ekspert (215,010 p.)
Przy zwykłej funkcji this ma context listenera, przy Arrow function nie.
komentarz 12 marca 2020 przez Tomek Sochacki Ekspert (227,490 p.)
ok, ale to nie zmienia faktu, że arrow function jest zle dla listenerów... wg mnie nie można tak ogólnie mówić, wszystko zależy od tego co i w jaki sposób chcesz robić w listenerze.
0 głosów
odpowiedź 11 marca 2020 przez Mariusz08 Maniak (62,280 p.)

Prawdopodobnie ten rzekomy kompilator nie wspiera ECMAScript6 który wprowadził Arrow Function (czyli zapis z e=>{}). Musisz albo pobrać nowszą wersję, albo nie używać tych ficzerów.

No chyba że to przeglądarka, to wtedy musisz ją zaktualizować na trochę mniej archaiczną.

komentarz 11 marca 2020 przez PoProstuTomasz Początkujący (470 p.)
Próbuję ten kod wszczepić poprzez Google Tag Managera, i "googlowy" kompilator mi wyrzuca ten błąd.
Pomożesz ominąć ten zapis przy poprawnym działaniu kodu?

Podobne pytania

0 głosów
1 odpowiedź 191 wizyt
pytanie zadane 28 lipca 2022 w JavaScript przez KubaLaska Początkujący (350 p.)
0 głosów
2 odpowiedzi 231 wizyt
pytanie zadane 30 sierpnia 2020 w JavaScript przez maslokeeper01 Użytkownik (620 p.)
+10 głosów
3 odpowiedzi 636 wizyt
pytanie zadane 25 marca 2018 w JavaScript przez Tomek Sochacki Ekspert (227,490 p.)

93,428 zapytań

142,423 odpowiedzi

322,652 komentarzy

62,789 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...