Closures and Callbacks
Inline Callbacks
Write a callback where it is used.
inline-callback
An inline callback keeps the transformation next to the array method. It can still read nearby variables such as `bonus`.
Inline Callbacks
inline_callback.js
Replay: real traced execution (multi-file project)
const bonus = 1;
const scores = [10, 20, 30];
const adjusted = scores.map((score) => score + bonus);
console.log("bonus=" + bonus);
console.log("adjusted=" + adjusted.join(","));
const bonus = 3;
const scores = [10, 20, 30];
const adjusted = scores.map((score) => score + bonus);
console.log("bonus=" + bonus);
console.log("adjusted=" + adjusted.join(","));
const bonus = 5;
const scores = [10, 20, 30];
const adjusted = scores.map((score) => score + bonus);
console.log("bonus=" + bonus);
console.log("adjusted=" + adjusted.join(","));
bonus ← 1, scores ← 10,20,30, adjusted ← 11,21,31
1const bonus→ 1 = 1; //@bonus=3, 52const scores→ 10,20,30 = [10, 20, 30];3const adjusted→ 11,21,31 = scores10,20,30.map((score) => score + bonus);45console.log("bonus=" + bonus1);6console.log("adjusted=" + adjusted11,21,31.join(","));outputbonus=1 adjusted=11,21,31
bonus ← 3, scores ← 10,20,30, adjusted ← 13,23,33
1const bonus→ 3 = 3;2const scores→ 10,20,30 = [10, 20, 30];3const adjusted→ 13,23,33 = scores10,20,30.map((score) => score + bonus);45console.log("bonus=" + bonus3);6console.log("adjusted=" + adjusted13,23,33.join(","));outputbonus=3 adjusted=13,23,33
bonus ← 5, scores ← 10,20,30, adjusted ← 15,25,35
1const bonus→ 5 = 5;2const scores→ 10,20,30 = [10, 20, 30];3const adjusted→ 15,25,35 = scores10,20,30.map((score) => score + bonus);45console.log("bonus=" + bonus5);6console.log("adjusted=" + adjusted15,25,35.join(","));outputbonus=5 adjusted=15,25,35