- 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?
- 玩轉(zhuǎn)Scratch少兒趣味編程
- Mastering Selenium WebDriver
- HTML5 移動Web開發(fā)從入門到精通(微課精編版)
- Quarkus實踐指南:構(gòu)建新一代的Kubernetes原生Java微服務(wù)
- INSTANT OpenNMS Starter
- SQL基礎(chǔ)教程(第2版)
- PHP+MySQL+Dreamweaver動態(tài)網(wǎng)站開發(fā)從入門到精通(第3版)
- 詳解MATLAB圖形繪制技術(shù)
- 快速入門與進階:Creo 4·0全實例精講
- 計算機應(yīng)用基礎(chǔ)教程(Windows 7+Office 2010)
- 零基礎(chǔ)學(xué)HTML+CSS
- JavaScript從入門到精通(視頻實戰(zhàn)版)
- Simulation for Data Science with R
- Building Business Websites with Squarespace 7(Second Edition)
- C#程序設(shè)計基礎(chǔ)入門教程