我想将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:赋值中的左侧无效(...)
答案 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('');