Als erstes habe ich vor langer Zeit eine Menge Hilfe von dieser Website bekommen, obwohl ich mich gerade erst registriert habe. Danke für all die Leute, die ihr Wissen hier teilen !!javascript "=>" operator
Ich fange gerade an, Javascript für eine Woche zu lernen, um ein firefox Addon zu bauen, also bitte bare mit mir und Entschuldigung für meine noobish Fragen und soso englische Grammatik.
https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Unit_testing
im obigen Link von MDN, erklärt es, wie man einen Komponententest für die Entwicklung eines Addons für Firefox schreibt. Es gibt jedoch einige Segmente, die ich nicht verstehe und die nach Google-Suche kein brauchbares Ergebnis gefunden haben.
Die erste:
die folgende ist ein Absatz von oben Link qauted:
In einer Web-Seite können Sie Base64-Codierung und Decodierung mit dem btoa() und atob() Funktionen ausführen. Leider sind diese Funktionen an das Window-Objekt angehängt: Da dieses Objekt in Ihren Haupt-Add-On-Code nicht verfügbar ist, sind auch atob() und btoa() nicht verfügbar. So erstellen wir ein Base64-Modul, um diese Funktionen von der -Plattform verfügbar zu machen (siehe Erstellen wiederverwendbarer Module).
Was bedeutet "die Plattform" im obigen Absatz? die "Dienste.jsm"?
Auch in dem folgenden Code: const { atob, btoa } = require("resource://gre/modules/Services.jsm");
dies macht atob und btoa als eine der Dienstleistungen, die für andere Klasse verfügbar ist? oder make (konstante Variablen) atob und btoa beziehen sich beide auf die Services.jsm?
Die zweite: Was tun diese beiden Zeilen Code?
exports.atob = a => atob(a);<br /> exports.btoa = b => btoa(b);
Ich verstehe den Teil
exports.atob
die atob Funktion von anderen Klassen außerhalb der „base64.js“ zur Verfügung stehen kann.
aber was bedeutet das?
= a => atob(a);
Ich habe nicht gefunden, dass Javascript "=>" Operator hat!
Aus meiner Grund ist der Grund, warum wir eine Base64.js erstellen, weil Atob und Btoa nur aufgerufen werden können, wenn wir das Fensterobjekt haben. Daher können wir Services.jsm verwenden, um eine Referenz des Fensterobjekts zu erhalten?
Vielen Dank im Voraus!
Vielen Dank für Ihre ausführliche Erklärung!
Kann ich sagen, dass Services.jsm die Brücke ist, um alle Funktionen zu exportieren, die an die https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/btoa windowbase64 binden? – ganor
Grrrr ... Ich kann nur Kommentare für 5 Minuten bearbeiten, sorry für diesen folgenden Kommentar! also kann ich sagen Services.jsm kann verwendet werden, um alle Funktionen zu exportieren, die nicht ohne Fensterobjekte verfügbar sind? oder es ist eine Fall-für-Fall-Situation? Ich kann nicht glauben, dass das '=>' zuvor auf dem Forum beantwortet wurde! Ich habe "=>" gesucht und nichts ist aufgetaucht ... wirklich zu schätzen! – ganor
Kein Problem! Services.jsm kann verwendet werden, um alle dort definierten Funktionen zu exportieren, die alle Funktionen sein können oder auch nicht. – Dexter