在JavaScript中将类实例作为函数调用

在JavaScript中将类实例作为函数调用,javascript,ecmascript-6,Javascript,Ecmascript 6,假设我有课 class-foo{ 构造函数(){ 这个._pos=0; } 巴(arg){ 控制台日志(arg); } } const obj=新的foo()您可以通过扩展函数构造函数来创建一个可调用对象,不过如果您希望它访问创建的实例,实际上需要在构造函数中创建一个绑定函数,将实例绑定到返回的函数 类foo扩展函数{ 构造函数(){ super(“…args”,“返回此.bar(…args)”); 这个._pos=0; 归还这个。绑定(这个); } 巴(arg){ 控制台日志(arg+th

假设我有课

class-foo{
构造函数(){
这个._pos=0;
}
巴(arg){
控制台日志(arg);
}
}

const obj=新的foo()
您可以通过扩展
函数
构造函数来创建一个可调用对象,不过如果您希望它访问创建的实例,实际上需要在构造函数中创建一个绑定函数,将实例绑定到返回的函数

类foo扩展函数{
构造函数(){
super(“…args”,“返回此.bar(…args)”);
这个._pos=0;
归还这个。绑定(这个);
}
巴(arg){
控制台日志(arg+this.\u pos);
}
}
const obj=新的foo();

设var1=obj(‘某物’)不能“调用”普通对象;那意味着什么?什么代码会运行?您想调用
foo
类的
bar
方法还是什么?请澄清。你所拥有的和你想做的并不一致。您有一个类(对象)的实例,并且希望将该对象作为函数调用。从技术上讲,您可以使用
class Foo extends function
扩展内置的
function
构造函数。但你可以,并不意味着你应该。:)一个非常优雅的解决方案!非常感谢。是否可以避免计算代码?