- Mastering JavaScript Functional Programming
- Federico Kereki
- 203字
- 2021-07-02 22:41:09
Questions
1.1. Classes as first-class objects: We saw that functions are first class objects, but did you know classes also are? (Though, of course, speaking of classes as objects does sound weird...) Study this example and see what makes it tick! Be careful: there's some purposefully weird code in it:
const makeSaluteClass = term =>
class {
constructor(x) {
this.x = x;
}
salute(y) {
console.log(`${this.x} says "${term}" to ${y}`);
}
};
const Spanish = makeSaluteClass("HOLA");
new Spanish("ALFA").salute("BETA");
// ALFA says "HOLA" to BETA
new (makeSaluteClass("HELLO"))("GAMMA").salute("DELTA");
// GAMMA says "HELLO" to DELTA
const fullSalute = (c, x, y) => new c(x).salute(y);
const French = makeSaluteClass("BON JOUR");
fullSalute(French, "EPSILON", "ZETA");
// EPSILON says "BON JOUR" to ZETA
1.2. Factorial errors: Factorials, as we defined them, should only be calculated for non-negative integers. However, the function we wrote doesn't verify if its argument is valid or not. Can you add the necessary checks? Try to avoid repeated, redundant tests!
1.3. Climbing factorial: Our implementation of factorial starts multiplying by n, then by n-1, then n-2, and so on., in what we could call a downward fashion. Can you write a new version of the factorial function, that will loop upwards?
- Mastering AWS Lambda
- Getting Started with CreateJS
- Drupal 8 Configuration Management
- Arduino家居安全系統構建實戰
- C語言開發基礎教程(Dev-C++)(第2版)
- 軟件項目管理實用教程
- 大話Java:程序設計從入門到精通
- C++從入門到精通(第6版)
- ASP.NET 4.0 Web程序設計
- Python Digital Forensics Cookbook
- Java程序設計實用教程(第2版)
- Shopify Application Development
- 企業級Java現代化:寫給開發者的云原生簡明指南
- JavaScript程序設計實例教程(第2版)
- C++ Windows Programming