首页 > 解决方案 > JavaScript 对象属性返回未定义

问题描述

我已经浏览了很多线程,用谷歌搜索了很多,并试图自己解决这个问题,但我做不到。我正在尝试解决我的问题。

我收到一个存储在本地存储中的字符串。

var c = localStorage.getItem('item');

然后我将此值传递给构造函数以将此值分配给对象的属性。这是类和构造函数。

class dataSet {
    constructor ( item ) {
      this.item = item;
    }

    get item() {
      return this._item;
    }

在按钮的帮助下,我在点击时调用以下函数:

function buildSet() {
    var currentSet = new dataSet( c );
    document.write(currentSet.item);
    document.write(c);
}

document.write(c) 只是一个测试,看看是否存储了任何值,是的,我的“测试”字符串被存储了。结果,我得到:

未定义测试

我对 JavaScript 很陌生,我知道 dataSet 对象以某种方式没有获得值并且没有分配它,但我不知道如何修复它。我从字面上阅读了 stackoverflow 上该主题的每个现有线程,但无法提出解决方案。谢谢你的时间。

标签: javascriptconstructorlocal-storageundefinedgetter

解决方案


您的错误在构造函数中!

你错过了一个_

它应该this._item = item;代替this.item = item;

因此你的吸气剂,即:

get item() {
  return this._item;
}

返回未定义,因为没有_item属性...


推荐阅读