function myFunc(){
console.log(myFunc.message);
}
myFunc.message = "Hi John";
myFunc();
Executing the above results in -
Answer: 'Hi John'
How is the function myFunc have the property message on it? typeof myFunc results in "function" and console.log(myFunc) displays the function content (without the property message on it).
How does the above work? Is a function in JavaScript internally an object?
Note - I am aware that functions have other parameters like prototype and length on them. But I am not sure how these are implemented as well.
Additional query -
Since console.log(myFunc) does not show the object properties, how do I list all the properties of a function object?