调用javascript对象作为函数

调用javascript对象作为函数,javascript,Javascript,在中,有一个jest.genMockFn()函数,用于创建对象,该对象可以作为函数调用,同时访问其属性 var mockFn = jest.genMockFn() mockFn('Hello world!') mockFn('The world is yours.') console.log(mockFn.mock.calls) // [["Hello world!"], ["The world is yours."]] 当我转储mockFn时,我得到: { [Function] _isM

在中,有一个
jest.genMockFn()
函数,用于创建对象,该对象可以作为函数调用,同时访问其属性

var mockFn = jest.genMockFn()
mockFn('Hello world!')
mockFn('The world is yours.')
console.log(mockFn.mock.calls) // [["Hello world!"], ["The world is yours."]]
当我转储
mockFn
时,我得到:

{ [Function]
  _isMockFunction: true,
  mock: 
   { calls: [ [Object], [Object] ],
     instances: [ [Object], [Object] ] },
  mockClear: [Function],
  mockReturnValueOnce: [Function],
  mockReturnValue: [Function],
  mockImpl: [Function],
  mockImplementation: [Function],
  mockReturnThis: [Function],
  _getMockImplementation: [Function] }

我不知道他们是怎么做到的。有什么想法吗?您能提供具有类似功能的代码吗?谢谢。

函数的定义是

作为标准内置对象实例的对象类型的成员
函数
构造函数,可以作为子例程调用

所以拥有一个可以调用的对象并不奇怪。所有函数的行为都是这样的

具体地说,这是使用[[Call]]完成的,它是仅为某些对象定义的

执行与对象关联的代码。通过函数调用调用 表情。[…]实现此内部方法的对象是 可呼叫


函数的定义是

作为标准内置对象实例的对象类型的成员
函数
构造函数,可以作为子例程调用

所以拥有一个可以调用的对象并不奇怪。所有函数的行为都是这样的

具体地说,这是使用[[Call]]完成的,它是仅为某些对象定义的

执行与对象关联的代码。通过函数调用调用 表情。[…]实现此内部方法的对象是 可呼叫


函数的定义是

作为标准内置对象实例的对象类型的成员
函数
构造函数,可以作为子例程调用

所以拥有一个可以调用的对象并不奇怪。所有函数的行为都是这样的

具体地说,这是使用[[Call]]完成的,它是仅为某些对象定义的

执行与对象关联的代码。通过函数调用调用 表情。[…]实现此内部方法的对象是 可呼叫


函数的定义是

作为标准内置对象实例的对象类型的成员
函数
构造函数,可以作为子例程调用

所以拥有一个可以调用的对象并不奇怪。所有函数的行为都是这样的

具体地说,这是使用[[Call]]完成的,它是仅为某些对象定义的

执行与对象关联的代码。通过函数调用调用 表情。[…]实现此内部方法的对象是 可呼叫


此代码允许您使用属性定义函数

var func = function () { };
func.attr = "value";

此代码允许您使用属性定义函数

var func = function () { };
func.attr = "value";

此代码允许您使用属性定义函数

var func = function () { };
func.attr = "value";

此代码允许您使用属性定义函数

var func = function () { };
func.attr = "value";

A是一个对象,因此您可以像其他JavaScript对象一样设置/获取它的属性。我不知道这一点。谢谢。A是一个对象,因此您可以像其他JavaScript对象一样设置/获取它的属性。我不知道这一点。谢谢。A是一个对象,因此您可以像其他JavaScript对象一样设置/获取它的属性。我不知道这一点。谢谢。A是一个对象,因此您可以像其他JavaScript对象一样设置/获取它的属性。我不知道这一点。谢谢,谢谢。你能提供一个例子吗?@user2078693
函数f(){alert('I am callable');}f.prop='I Can have properties';f instanceof Object===true
谢谢。你能提供一个例子吗?@user2078693
函数f(){alert('I am callable');}f.prop='I Can have properties';f instanceof Object===true
谢谢。你能提供一个例子吗?@user2078693
函数f(){alert('I am callable');}f.prop='I Can have properties';f instanceof Object===true
谢谢。你能提供一个例子吗?@user2078693
函数f(){alert('I am callable');}f.prop='I Can have properties';f instanceof Object===true