我可以从对象中创建一个可调用的函数吗?

wwa*_*waw 2 javascript function object

我们假设我有一个功能:

var func = function(param){return param + 1;};
Run Code Online (Sandbox Code Playgroud)

鉴于函数是对象,我可以添加属性:

func.prop = 'foo';
Run Code Online (Sandbox Code Playgroud)

双方func(4)并func.prop应工作.但现在让我们说我有一个对象:

var obj = {prop: 'foo'};
Run Code Online (Sandbox Code Playgroud)

...我想让它作为增量函数调用.这可能吗?

Rob*_*obG 5

我想将[Ojbect]作为增量函数进行调用.这可能吗?

没有.

Object构造函数创建的对象没有内部[[Call]]方法,因此无法调用.这[[Call]]是使函数成为函数的特殊方法.请注意,Object构造函数是一个Function,但它生成普通的Object,而不是函数.

函数继承自Object.prototype,它们由Function构造函数创建.内置构造函数具有ECMA-262赋予它们的额外功能.:-)