- 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?
- Spring Boot開發與測試實戰
- SpringMVC+MyBatis快速開發與項目實戰
- C語言程序設計(第2版)
- Java程序員面試算法寶典
- PHP 編程從入門到實踐
- Learn Scala Programming
- 網店設計看這本就夠了
- 名師講壇:Java微服務架構實戰(SpringBoot+SpringCloud+Docker+RabbitMQ)
- 精通Python自然語言處理
- Mastering JBoss Enterprise Application Platform 7
- Haxe Game Development Essentials
- Maker基地嘉年華:玩轉樂動魔盒學Scratch
- UML軟件建模
- Mastering Node.js
- Getting Started with Backbone Marionette