是否有任何方法可以让我将一个类称为函数。我正在寻找下面的功能,其中类中有一个main
方法,这就是我想让方法执行的方法。
class test {
constructor () {
return this.main
}
main () {
return Promise.resolve('thomas')
}
}
test().then(name => {
console.log(name)
})
似乎我唯一的另一个选择是拥有这样的包装函数。
class Test {
constructor (name) {
this.name = name
}
main () {
return Promise.resolve(this.name)
}
}
let test = (name) => {
return new Test(name).main()
}
test('thomas').then(name => {
console.log(name)
})
答案 0 :(得分:11)
在JavaScript中使用类时使用new
关键字。在类名之前添加new
之前,我遇到了类似的问题。
答案 1 :(得分:0)
我知道我迟到了,但是我找到的解决方法是:
// MyLib.js
class MyLib {
constructor(selector){}
someMethod(){}
...
}
export function MyFunction(selector){
return new MyLib(selector)
}
那么我不需要使用new
,我可以简单地MyFunction().someMethod()
例如,我使用香草js编写了一个简单的jQuery替换,而我只是通过将$
更改为J
来替换掉jQuery语法的90%以上,例如:
J().ready(function(){})
J().ajax(...).then((res)=>{}).catch((err)=>{}) // used axios here
J('.someClass').find('li').last()
J('header').css({display:'block'})
//etc
顺便说一句,我发现使用webpack全局公开它更具挑战性……但是对于webpack(在样板之外)我还有些陌生-是的。
希望这对某人有帮助。