我们怎样才能证明javascript函数是对象?

Atu*_*mar 3 javascript function object

我在用

var foo = function(){}
Run Code Online (Sandbox Code Playgroud)

typeof(foo) - 返回函数而不是Object

而javascript概念告诉javascript中的所有函数都是对象?

T.J*_*der 6

首先,有该规范明确规定他们的对象,在很多地方,包括事实在这里它定义了术语"功能":

功能

可以作为子例程调用的Object类型的成员

根据经验,有很多方法可以证明它,但最简单的方法之一是为其上的属性赋值:

var foo = function() { };
foo.myProperty = "my value";
console.log(foo.myProperty); // "my value"
Run Code Online (Sandbox Code Playgroud)

或者使用一个作为原型(这是不寻常的,但可能),这证明它只有对象可以是原型:

var foo = function() { };
var obj = Object.create(foo);
console.log(Object.getPrototypeOf(obj) === foo); // true
Run Code Online (Sandbox Code Playgroud)