Backticks (`…`) zum Aufrufen einer Funktion in JavaScript

Lesezeit: 1 Minute

Benutzer-Avatar
Sterling Archer

Ich bin mir nicht sicher, wie ich das erklären soll, aber wenn ich renne

console.log`1`

In Google Chrome bekomme ich eine Ausgabe wie

console.log`1`
VM12380:2 ["1", raw: Array[1]]

Warum ruft der Backtick die Protokollfunktion auf und warum erstellt er einen Index von raw: Array[1]?

Frage, die von Catgocat im JS-Raum aufgeworfen wurde, aber keine Antworten ergaben einen Sinn, außer etwas über Templating-Strings das passte nicht wirklich, warum das passiert.

  • Verwandte: Javascript Es6-getaggte Vorlagen – Wann wird Raw verwendet? Wann wird Cooking verwendet?, Wie interpretieren mit ES6 gekennzeichnete Vorlagenfunktionen ihre Argumentreihenfolge?

    – Felix Klinge

    15. April 2015 um 20:56 Uhr

Benutzer-Avatar
ShrekÜberlauf

Es heißt Tagged Template in ES-6 mehr darüber kann man lesen Hier, lustig fand ich den Link im markierten Bereich des sehr Chats.

Aber der relevante Teil des Codes ist unten (Sie können grundsätzlich eine gefilterte Sortierung erstellen).

function tag(strings, ...values) {
  assert(strings[0] === 'a');
  assert(strings[1] === 'b');
  assert(values[0] === 42);
  return 'whatever';
}
tag `a${ 42 }b`  // "whatever"

Im Grunde ist es lediglich das Taggen der “1” mit der Funktion console.log, wie es bei jeder anderen Funktion der Fall wäre. Die Markierungsfunktionen akzeptieren geparste Werte von Vorlagenzeichenfolgen und die Werte separat, auf denen weitere Aufgaben ausgeführt werden können.

Babel transpiliert den obigen Code nach

var _taggedTemplateLiteralLoose = function (strings, raw) { strings.raw = raw; return strings; };

console.log(_taggedTemplateLiteralLoose(["1"], ["1"]));

Wie Sie im obigen Beispiel sehen können, wird der Tagging-Funktion (console.log) nach der Transpilation durch babel der Rückgabewert des folgenden es6->5-transpilierten Codes übergeben.

_taggedTemplateLiteralLoose( ["1"], ["1"] );

Der Rückgabewert dieser Funktion wird an console.log übergeben, das dann das Array ausgibt.

1010760cookie-checkBackticks (`…`) zum Aufrufen einer Funktion in JavaScript

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy