96
class BaseFunction {
  static #allowInstantiation = false;

  constructor(...args) {
    if (!BaseFunction.#allowInstantiation) {
      throw new Error(
        "Why are you trying to use 'new'? Classes are so 2015! Use our fancy 'run' method instead!"
      );
    }
    for (const [name, validator] of this.parameters()) {
      this[name] = validator(args.shift());
    }
  }

  parameters() {
    return [];
  }

  body() {
    return undefined;
  }

  static run(...args) {
    BaseFunction.#allowInstantiation = true;
    const instance = new this(...args);
    BaseFunction.#allowInstantiation = false;
    return instance.body();
  }
}

class Add extends BaseFunction {
  parameters() {
    return [
      ["a", (x) => Number(x)],
      ["b", (x) => Number(x)],
    ];
  }

  body() {
    return this.a + this.b;
  }
}

console.log(Add.run(5, 3)); // 8



you are viewing a single comment's thread
view the rest of the comments
[-] TunaSlap@lemmy.world 3 points 1 day ago

What theme are you using, i like it!

[-] Chais@sh.itjust.works 4 points 1 day ago
[-] TunaSlap@lemmy.world 2 points 1 day ago

Actually now that check it again its not quite right for mocha. But it's close!

[-] Chais@sh.itjust.works 2 points 1 day ago

You're right, the background is too dark. Probably crust instead of base. Maybe it was customised or created improperly.
But I'm fairly confident that the palette is Catppuccin, probably Mocha.

[-] sebastiancarlos@lemmy.sdf.org 2 points 1 day ago* (last edited 1 day ago)

I can confirm it's Catppuccin Mocha. I am not currently aware of the background color issue, but I'll look into the matter soon. Thanks for letting me know. Also how dare you. But thanks.

[-] Chais@sh.itjust.works 1 points 18 hours ago

The background is most likely a color that is in the Mocha palette, just one that is intended for dark accents, not regular background.

load more comments (3 replies)
load more comments (3 replies)
this post was submitted on 17 Nov 2024
96 points (93.6% liked)

Programmer Humor

32503 readers
432 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS