es6关于在constructor中new对象为属性的问题,报错
import UserService from './UserService';
export default class Controller {
constructor() {
this.userService = new UserService(); //初始化service
}
login(req, res, next) {
var user = {'account': 'zhangsan', 'pwd': '123'};
this.userService
.login(user)
.then((result)=>{
// console.log(result);
res.json(user);
})
.catch((error)=>{
console.log(error);
});
}
}
报错如下
而如果我把new UserService()去掉,改为在login里 new UserService().login(user)就没有问题,但是却似乎违反了面向对象的原则。 我目的是想实现初始化的时候只有一个控制器和一个UserService,而不是每次登陆都要new一个UserService出来。请求高玩指点迷津!
附:给予看到此贴的朋友
结果为this指向问题,可参考
https://segmentfault.com/q/10...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
可能是this 丢失了,试试
基本上按你的代码恢复出来的下面的代码没有问题,所以你最好确认一下是哪里的
userService
调用出现了问题。