不能将类作为函数调用
Cannot call a class as a function
有什么方法可以让我把类作为函数调用吗。我希望具有以下功能,其中类中有一个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)
})
在JavaScript中使用类时使用new
关键字。我也遇到过类似的问题,直到我在类名之前添加了new
。
我知道我迟到了好几年,但我找到的解决方案是:
// MyLib.js
class MyLib {
constructor(selector){}
someMethod(){}
...
}
export function MyFunction(selector){
return new MyLib(selector)
}
那么我不需要使用new
,我可以简单地使用MyFunction().someMethod()
例如,我使用vanilla js编写了一个简单的jQuery替换,我只需将$
更改为J
,就可以替换大约90%以上的jQuery语法,例如:
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(样板之外的)有点陌生——是的。
希望这能帮助到别人。
相关文章:
- javascript函数调用不起作用
- 函数调用不起作用
- 为什么这两个函数调用不相等
- 为什么这个javascript函数调用不起作用
- jQuery函数调用不起作用
- 为什么函数流不能正常工作
- JQuery .ajax() 函数调用不起作用,但成功方法运行
- “函数声明不能嵌套在语句中” - IE 处于严格模式错误
- JS简单函数调用不起作用
- Javascript函数调用不起作用
- 为什么函数原型不能修改 .
- 函数 JavaScript 不能在链接的 ID 下正常工作
- js在参数中命名了函数,不能访问出函数
- 函数js不能递归调用自己的函数
- Chrome扩展->ExecuteScript:函数调用不'工作
- 函数未定义..我的函数调用不起作用
- 为什么.on('load',函数)不能处理JS模板
- 在递归函数中不能调用回调函数
- 从PHP调用JS函数时不能捕获输入ID
- 为什么调用不能作为排序函数