如何在"extension"方法中修改这个对象?

How to modify this object in "extension" method?

我想将 splice 方法添加到字符串,其行为与数组的 splice 方法完全相同。问题是 splice 修改了 "this" 对象并 returns 删除了元素。后面的没问题,但是修改"this"怎么写?

if (typeof String.prototype.splice != 'function') {
    String.prototype.splice = function (index,count,add) {
        var removed = this.slice(index,index+count);
        this = this.slice(0, index) + (add || '') + this.slice(index + count); // (*)
        return removed;
  };
}

我不能这样写。那么如何修改"this"对象呢?

不可能 - 除了在构造函数中不可能分配给 this,并且 String 类型不提供就地修改字符串的函数。