JavaScript-Tupel-Beispiel
In der JavaScript-Sprache sind Tupel Arten von Arrays mit unveränderlichen Merkmalen. Wir können auf Tupel mit einer einzigen Variablen zugreifen, die eine Art array
ist.
Tupel in JavaScript
class MyBestTupleExplanation extends Array {
constructor(...items) {
super(...items);
Object.freeze(this);
}
}
let tuple = new MyBestTupleExplanation('Afridi', 35, 'White');
let [myName, myAge, skinColor] = tuple;
console.debug(myName); // Afridi
console.debug(myAge); // 35
console.debug(skinColor); // White
console.debug('******************************************');
console.debug('Now we are re-assigning the values to tuple');
console.debug('******************************************');
tuple = ['Bob', 24]; // no effect
console.debug(myName); // Afridi
console.debug(myAge); // 35
console.debug(skinColor); // White
Ausgabe:
Afridi
35
White
******************************************
Now we are re-assigning the values to tuple
******************************************
Afridi
35
White
Im obigen Beispiel haben wir eine Klasse namens MyBestTupleExplanation
erstellt, die von der Array
-Klasse geerbt wurde. Es verhält sich wie ein Array, jedoch mit Unveränderlichkeitsfunktionen. In dieser Klasse rufen wir den Konstruktor der Klasse Array
mit der Methode super
auf.
Im obigen Code haben wir die Klasse MyBestTupleExplanation
verwendet und in ihrem Konstruktor die Methode freeze
von der übergeordneten Klasse Object
aufgerufen und ihr ein Array übergeben.
Nachdem wir diese Klasse erstellt haben, haben wir das Objekt dieser Klasse mit dem Namen MyBestTupleExplanation
erstellt und die Werte durch den Konstruktor übergeben.
Wir haben ein anonymes Array von Variablen erstellt und diesem Array unser Tupel zugewiesen. Die Elemente im Tupel werden indexweise dem array
zugewiesen. Es funktioniert nicht, wenn wir die Werte später diesem Tupel neu zuweisen. Wie im Beispiel gezeigt, können wir die Werte dem Tupel nicht neu zuweisen.
JavaScript-Tupel-Beispiel 2
class MyBestTupleExplanation extends Array {
constructor(...items) {
super(...items);
Object.freeze(this);
}
}
let tuple = new MyBestTupleExplanation('Afridi', 35);
let [myName, myAge, skinColor] = tuple;
console.debug(myName); // Afridi
console.debug(myAge); // 35
console.debug(skinColor); // undefined
Ausgabe:
Afridi
35
undefined
Im obigen Beispiel haben wir eine Variable skinColor
erstellt, aber ihren Wert nicht initialisiert; Deshalb erhalten wir einen undefinierten Fehler.