In JS arguments array in functions is a special object that can be used to get all the arguments passed to the function. Similar to this, arrow functions do not have their own binding to a arguments object, they are bound to arguments of enclosing scope.
Arrow functions are callable but not constructable
If a function is constructable, it can be called with new, i.e. new User(). If a function is callable, it can be called without new (i.e. normal function call).
Functions created through function declarations / expressions are both constructable and callable.
Arrow functions (and methods) are only callable. class constructors are only constructable.
If you are trying to call a non-callable function or to construct a non-constructable function, you will get a runtime error
let arrowFunc = () => {}
new arrowFunc()
This code gives the error:
arrowFunc is not a constructor
Arrow functions do not have a arguments array
In JS arguments array in functions is a special object that can be used to get all the arguments passed to the function. Similar to this, arrow functions do not have their own binding to a arguments object, they are bound to arguments of enclosing scope.
Arrow functions are callable but not constructable
If a function is constructable, it can be called with new, i.e. new User(). If a function is callable, it can be called without new (i.e. normal function call).
Functions created through function declarations / expressions are both constructable and callable.
Arrow functions (and methods) are only callable. class constructors are only constructable.
If you are trying to call a non-callable function or to construct a non-constructable function, you will get a runtime error
source