这个JavaScript清除功能代码有什么问题?

时间:2018-04-07 15:00:07

标签: javascript

为什么clear函数不起作用。 我不确定我做错了什么? 任何帮助表示赞赏。 问候 优素福


    function StringBuilder(initials) {
      var list = [];
      if (initials) {
        list.push(initials);
      }
      return {
        append: function (str) {
          if (!str) {
            str = "";
          }
          list.push(str);
          return this;
        },
        appendLine: function (str) {
          if (!str) {
            str = "";
          }
          list.push(str + "\n");
          return this;
        },
        clear: function () {
          this.list = [];
          return this;
        },
        toString: function () {
          return list.toString().replace(/,/g, " ");
        }
      };
    }

1 个答案:

答案 0 :(得分:2)

您的clear()方法会重置this.list,但list不是对象属性;它是闭包中的一个变量。代码应该只是

    clear: function () {
      list = [];
      return this;
    },