es6关于在constructor中new对象为属性的问题,报错
三叔
三叔 2016-12-05 09:12:18
0
3
1532
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); }); } }

报错如下

t01982e0291c6a1d93b.jpg

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

三叔
三叔

全部回覆 (3)
学霸
constructor() { super(); }


    你的女神

    基本上按你的代码恢复出来的下面的代码没有问题,所以你最好确认一下是哪里的 userService 调用出现了问题。

    class UserService { login() { return Promise.resolve("login"); } } 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 Controller().login();


      小葫芦

      可能是this 丢失了,试试

      constructor() { this.userService = new UserService(); this.login = this.login.bind(this); }


        最新下載
        更多>
        網站特效
        網站源碼
        網站素材
        前端模板
        關於我們 免責聲明 Sitemap
        PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!