通过String.prototype函数设置String而不返回

时间:2012-02-21 00:34:06

标签: javascript string prototype splice

我有以下函数将splice添加到字符串中:

String.prototype.splice = function(index, howManyToDelete, stringToInsert) {
    var characterArray = this.split('');
    Array.prototype.splice.apply(characterArray, arguments);
    return characterArray.join('');
}

然而,它确实与Array.prototype.splice完全相同,我需要它。数组拼接返回已删除的值。所以我只需要知道如何将新值设置为String而不必返回值。

String.prototype.splice = function(index, howManyToDelete, stringToInsert) {
    var characterArray = this.split(''),
        retVal = Array.prototype.splice.apply(characterArray, arguments);
    newstringvalue = characterArray.join('');
    return retVal;
}

编辑:
显然你不能这样做,这就足够了:

String.prototype.splice = function(index, howManyToDelete, stringToInsert) {
    var characterArray = this.split(''),
        rem = Array.prototype.splice.apply(characterArray, arguments);
    return {'s' : characterArray.join(''), 'x' : rem.join('')};
}

1 个答案:

答案 0 :(得分:2)

你做不到。您不能以更改数组内容的方式更改字符串的值。

查看其他字符串方法,以及它们如何返回新的字符串值,而不是更改字符串。