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

时间:2016-03-02 07:51:44

标签: javascript this

我想将splice函数添加到String中,就像Array的splice函数一样。那是代码

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

会显示

  

未捕获的ReferenceError:赋值中的左侧无效(...)

2 个答案:

答案 0 :(得分:2)

您无法重新指定this。尝试声明变量并使用它:

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

this是一个参考,而不是一个对象。这就是我们所谓的“不可变”。

答案 1 :(得分:0)

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

您需要做的就是

替换

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

return p.join('');