Arrow Functions
Which of the following is true about the 'arguments' object in arrow functions?
Arrow functions don't have their own 'arguments' object but inherit it from the enclosing scope. This is similar to how they handle the `this` keyword. If an arrow function is defined within a regular function, it can access the `arguments` object of that enclosing function. However, if an arrow function is defined at the top level or in a context where no `arguments` object exists, attempts to access `arguments` will result in a reference to the variable in an outer scope or a ReferenceError if no such variable exists. Instead of using the `arguments` object, the recommended approach in arrow functions is to use rest parameters (`...args`), which provide a true array of arguments with all Array methods available. For example: `const sum = (...numbers) => numbers.reduce((total, n) => total + n, 0);`. This limitation is consistent with the minimalist design of arrow functions, which lack their own bindings for several keywords including `this`, `super`, `arguments`, and `new.target`.