如何在"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
类型不提供就地修改字符串的函数。
我想将 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
类型不提供就地修改字符串的函数。