javascript 函数中如何具有属性?

Nit*_*iya 3 javascript javascript-objects

function myFunc(){
    console.log(myFunc.message);
}
myFunc.message = "Hi John";

myFunc();
Run Code Online (Sandbox Code Playgroud)

执行上述结果 -

Answer: 'Hi John'
Run Code Online (Sandbox Code Playgroud)

函数是如何myFunc拥有属性的messagetypeof myFunc结果为“函数”并console.log(myFunc)显示函数内容(没有其message上的属性)。

以上是如何工作的?JavaScript 中的函数在内部是一个对象吗?

注意 - 我知道函数还有其他参数,如原型和长度。但我不确定这些是如何实现的。

附加查询 - 由于console.log(myFunc)不显示对象属性,如何列出函数对象的所有属性?

Que*_*tin 5

以上是如何工作的?javascript中的函数在内部是一个对象吗?

是的

function example() {};

console.log(example instanceof Object);
Run Code Online (Sandbox Code Playgroud)