字符串原型修改自身

Chr*_*isR 10 javascript string prototype

据我所知,不可能通过这种方式修改对象:

String.prototype.append = function(val){
    this = this + val;
}
Run Code Online (Sandbox Code Playgroud)

那么根本不可能让字符串函数自行修改吗?

CMS*_*CMS 18

字符串原语是不可改变的,在创建之后不能被改变.

这意味着它们中的字符可能不会被更改,并且对字符串的任何操作实际上都会创建新的字符串.

也许你想实现一种字符串生成器?

function StringBuilder () {
  var values = [];

  return {
    append: function (value) {
      values.push(value);
    },
    toString: function () {
      return values.join('');
    }
  };
}

var sb1 = new StringBuilder();

sb1.append('foo');
sb1.append('bar');
console.log(sb1.toString()); // foobar
Run Code Online (Sandbox Code Playgroud)