Arrow Functions
In which scenario would an arrow function NOT be the best choice?
An arrow function would NOT be the best choice as a method in an object literal. Since arrow functions inherit `this` from the enclosing lexical scope (often the global scope when defined in an object literal) rather than being bound to the object, they typically can't access the object's properties via `this`. For example, in `const obj = { name: 'Object', getName: () => this.name };`, the `getName` method would not return 'Object' because `this` refers to the outer scope, not the object itself. Object methods generally need to access the object instance via `this`, making regular functions (or the shorthand method syntax `getName() { return this.name }`) more appropriate. Arrow functions are ideal for the other scenarios mentioned: callbacks for setTimeout/setInterval, mapping/filtering operations on arrays, and event handlers when you need to access `this` from the enclosing scope. Understanding when to use arrow functions versus regular functions is important for writing effective JavaScript code, and object methods are one of the primary cases where arrow functions are typically not suitable.