Zum ersten Mal etwas wie this in Node.js zum Deklarieren von Funktionen zu sehen. Kurz ist der Code ähnlich wie dieseWie funktioniert die Funktionsdeklaration durch eckige Klammern in Node.js/Javascript?
'use strict';
const Actions = {
ONE: 'one',
TWO: 'two',
THREE: 'three'
};
class FunMap {
run(action) {
const map = this;
map[action]();
}
[Actions.ONE]() {
console.log("Performing action one");
}
[Actions.TWO]() {
console.log("Performing action two");
}
[Actions.THREE]() {
console.log("Performing action three");
}
}
var funMap = new FunMap();
funMap.run('one');
funMap.run('two');
funMap.run('three');
Das obige Programm
gedruckt wirdPerforming action one
Performing action two
Performing action three
Gibt es einen technischen Namen für diese Art der Funktionsdeklaration in Node.js/Javascript?
Wie fügt diese Zeile all diese (Funktionen, die durch die Verwendung der eckigen Klammern mit einer Zeichenkettenkonstante deklariert sind) in Eigenschaftsfunktionen des FunMap-Objekts ein?
const map = this;
Ist die eckigen Klammern Notation []
in einer JavaScript-Klasse verweist auf die Klasse selbst?
Kann ich etwas anderes als eine Zeichenkette konstant in [] setzen? Ist die Antwort auf meine letzte Frage ein NEIN? Bezieht sich die eckige Klammernnotation [] in einer JavaScript-Klasse auf die Klasse selbst? –
Sie können jeden Ausdruck in die Klammern setzen (versuchen Sie '[" f "+ 1]() {}'), und die Antwort ist nein - der Code in den eckigen Klammern wird ausgeführt, bevor die Klasse definiert wird. – joews
Muss ein Ausdruck in den Klammern eine Zeichenfolge zurückgeben? –