Callbacks in JavaScript: Why They Exist