分配中的左侧无效,"this = xxx"

Invalid left-hand side in assignment, "this = xxx"

我想在String中添加拼接功能,就像Array的拼接功能一样。这就是代码

String.prototype.splice = function(start, len, substr) {
  var p = this.split('');
  p.splice(start, len, substr);
  this = p.join('');
  return this;
}

会显示

Uncaught ReferenceError: Invalid left-hand side in assignment(…)

您无法重新分配 this。尝试声明一个变量并使用它:

String.prototype.splice = function(start, len, substr) {
    var p = this.split('');
    p.splice(start, len, substr);
    var joinedArray = p.join('');
    return joinedArray;
}

this 是引用,不是对象。这就是我们所说的 "immutable".

您不能重新分配 this 因为 this 值根据定义是不可变的,您不能以这种方式更改它引用的内容。

您只需

替换

this = p.join(''); return this;

return p.join('');