When you call object 'arguments' inside of an function, where does this variable come from? So in other words, where is it defined? Lets look with an example:
function func1(a) {
console.log(arguments[0]);
}
func1("yellow");
I'm gonna make an extreme wild guess here and id say it comes from the static property defined in func1 since it contains the static property func1.arguments but i could be wrong. func1 however also contains other static properties such as 'length' and 'name' can these be called the same way as shown in the above example?
It is defined in the specification.
It is provided by the JS engine when the function is called.
How that is done is an implementation detail of the specific JS engine.