js对象取属性值,打印这个对象可以看到这个属性,但是为什么取不到?

须臾
  • 314

代码如下:

    this.user = userservice.userInfo;
    this.classList = this.user.classinfo;
    console.log(this.user);
    console.log(this.classList);

浏览器中的显示是这样的:

clipboard.png

user对象是可以打印出来的,但是取classinfo取到的却是undefined。

clipboard.png

加入断点后看到的:

clipboard.png
这个user对象里边看不到属性

回复
阅读 10.5k
3 个回答

在这四行代码后面加断点,或者使用console.log(JSON.stringify(this.user))再看


加断点或console.log(JSON.stringify(this.user))是空的话说明在console.log()的时刻是没值的,只是你点开控制台的时候有值,控制台对引用数据的输出就是这样,点开小三角的时候会重新获取。

这么输出下

    this.user = userservice.userInfo;
    console.log(this)
    console.log(this.user.classinfo)
    this.classList = this.user.classinfo;
    console.log(this)
    console.log(this.user);
    console.log(this.classList);

userservice.userInfo 是不是异步的?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏