我目前正在学习ES6。当我尝试新功能时,我遇到了一个问题。如何调用类方法。
假设我在一个文件中有一个类,如下所示:
class Auth {
checkUserSignedIn() {
//check user signed in
}
signupUser(account) {
//signup user
}
loginUser(account) {
//login user
}
getCurentUser() {
//Current User
}
}
module.exports = Auth;
然后在其他一些文件中,假设我想调用这些函数的 Controller 。
const Auth = require('./auth');
class Controller {
signupUserUsingEmailAndPass(user) {
Auth.signupUser(account);
}
loginUserUsingEmailAndPass(account) {
Auth.loginUser(account);
}
isUserSignedIn() {
checkUserSignedIn();
}
}
module.exports = Controller;
但这根本不起作用。我想有些东西我理解不正确。有什么建议/建议吗?
最佳答案
类中定义的方法需要该类的实例,即某处的new Auth
。
你的 Controller 应该定义有
class Controller {
constructor(auth) {
this.auth = auth;
}
}
这种通过 require('myclass')
的方法允许您注入(inject) Auth
类的不同实现。
如果您不需要这些方法的 Auth
实例,请将它们声明为静态。更多信息here
关于javascript - 如何在 JavaScript 中调用类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45698479/