如何在"扩展"中修改此对象方法?

时间:2015-01-11 19:49:35

标签: javascript extension-methods

我想将splice方法添加到String,其行为与Array的splice方法完全相同。问题是splice修改"这个"对象并返回已删除的元素。后者没有问题,但如何写出这个"这个"被修改了吗?

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;
  };
}

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

1 个答案:

答案 0 :(得分:4)

这是不可能的 - 除了在构造函数中,它不可能分配给thisString类型不提供任何就地修改字符串的函数。