Heim > Web-Frontend > js-Tutorial > Hauptteil

Erstellen Sie verkettete Aktionsklassen in JavaScript

PHPz
Freigeben: 2023-09-17 12:13:08
nach vorne
1204 Leute haben es durchsucht

在 JavaScript 中创建链式操作类

Frage

Wir sollten einen benutzerdefinierten Datentyp Streak in JavaScript erstellen, der mit einem beliebigen Bereich mit Werten und Operationen 强> oder

verknüpft werden kann. Der Wert kann einer der folgenden sein Zeichenfolgen – Die

→ one, two three, four, five, six, seven, eight, nine
Nach dem Login kopieren

-Operation kann eine der folgenden Zeichenfolgen sein –

→ plus, minus
Nach dem Login kopieren

Wenn wir beispielsweise Folgendes im Kontext einer Klasse implementieren –

Streak.one.plus.five.minus.three;
Nach dem Login kopieren

, dann sollte die Ausgabe lauten:

const output = 3;
Nach dem Login kopieren

Ausgabeerklärung

weil Der ausgeführte Vorgang ist:

1 + 5 - 3 = 3
Nach dem Login kopieren

Beispiel

Hier ist der Code –

Live-Demo

const Streak = function() {
   let value = 0;
   const operators = {
      'plus': (a, b) => a + b,
      'minus': (a, b) => a - b
   };
   const numbers = [
      'zero', 'one', 'two', 'three', 'four', 'five',
      'six', 'seven', 'eight', 'nine'
   ];
   Object.keys(operators).forEach((operator) => {
      const operatorFunction = operators[operator];
      const operatorObject = {};
      numbers.forEach((num, index) => {
         Object.defineProperty(operatorObject, num, {
            get: () => value = operatorFunction(value, index)
         });
      });
      Number.prototype[operator] = operatorObject;
   });
   numbers.forEach((num, index) => {
      Object.defineProperty(this, num, {
         get: () => {
            value = index;
            return Number(index);
         }  
      });
   });
};
const streak = new Streak();
console.log(streak.one.plus.five.minus.three);
Nach dem Login kopieren

Ausgabe

Hier ist die Konsolenausgabe –

3
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonErstellen Sie verkettete Aktionsklassen in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage