在Python中,你可以使一个实例成为一个可调用的对象,如下所示:
# py code snippet
class Demo:
def __call__(self):
print("Demo's instance callable")
Demo()() # Demo's instance is callable
在js中,是否有如上所示的相同功能?
// js code snippet
function Demo1() {}
const d1 = new Demo1();
class Demo2 {}
const d2 = new Demo2();
// can I make d1 or d2 become a callable instance? like d1() or d2() to run some function logic.
你不能直接调用这个,d1和d2是Demo实例,我建议你看看js中new关键字的过程中发生了什么,这样你就可以理解,这就是你描述的代码中的call方法的实现
function Demo1() {
return function() {
console.log(1)
}
}
const d1 = new Demo1();
class Demo2 {}
const d2 = new Demo2();
d1()
我建议你看看 new 关键字的作用,这样你就可以理解它了