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);

      });

  

  }


}

报错如下

https://img3.mukewang.com/5bdabd3c00010fcd05990050.jpg

而如果我把new UserService()去掉,改为在login里 new UserService().login(user)就没有问题,但是却似乎违反了面向对象的原则。 我目的是想实现初始化的时候只有一个控制器和一个UserService,而不是每次登陆都要new一个UserService出来。请求高玩指点迷津!

附:给予看到此贴的朋友
结果为this指向问题,可参考
https://segmentfault.com/q/10...


阿晨1998
浏览 862回答 1
1回答

郎朗坤

可能是this 丢失了,试试constructor() {     this.userService = new UserService();     this.login = this.login.bind(this); }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript