官术网_书友最值得收藏!

Questions

2.1. No extra variables: Our functional implementation required using an extra variable, done, to mark whether the function had already been called. Not that it matters... but could you make do without using any extra variables? Note that we aren't telling you not to use any variables; it's just a matter of not adding any new ones, such as done, and only as an exercise!

2.2. Alternating functions: In the spirit of our onceAndAfter() function, could you write an alternator() higher-order function that gets two functions as arguments, and on each call, alternatively calls one and another? The expected behavior should be as in the following example:

     let sayA = () => console.log("A");
let sayB = () => console.log("B");

let alt = alternator(sayA, sayB);
alt(); // A
alt(); // B
alt(); // A
alt(); // B
alt(); // A
alt(); // B

2.3. Everything has a limit!: As an extension of once(), could you write a higher-order function thisManyTimes(fn,n) that would let you call the fn() function up to n times, but would afterwards do nothing? To give an example, once(fn) and thisManyTimes(fn,1) would produce functions that behave in exactly the same way.

主站蜘蛛池模板: 依兰县| 邢台县| 磐安县| 房产| 芜湖县| 天门市| 高青县| 明星| 仁布县| 潮州市| 康乐县| 祁东县| 绵阳市| 博白县| 南平市| 乾安县| 北宁市| 科技| 六枝特区| 道真| 清水河县| 双辽市| 凌源市| 浦北县| 卫辉市| 黄山市| 永昌县| 南阳市| 西丰县| 绥宁县| 扬州市| 革吉县| 启东市| 马边| 新田县| 如皋市| 和田市| 若尔盖县| 吴旗县| 莫力| 平邑县|