在js中,有没有什么功能可以实现callable实例,比如python中的__call__方法

问题描述 投票:0回答:1

在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.
javascript class operator-overloading instance
1个回答
0
投票

你不能直接调用这个,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 关键字的作用,这样你就可以理解它了

© www.soinside.com 2019 - 2024. All rights reserved.