我正在尝试更改其原型类型函数中的字符串值:
anywhere
但是,因为看起来我无法改变价值。如果我尝试在控制台上运行它,我只会收到错误:String.prototype.myfunction=function(){
this += "a";
return this;
};
是否可以更改字符串值? 提前致谢
答案 0 :(得分:3)
我认为这与字符串的不变性以及this
是常量这一事实有关。
如果你的例子被简单地改为:
,它就可以了String.prototype.myfunction=function(){
return this + 'a';
};
答案 1 :(得分:0)
字符串是不可变的。您可能希望使用一组字符:
class MyString extends Array {
constructor(str) {
super(...String(str));
}
myfunction() {
this.push("a");
return this;
}
toString() {
return this.join('');
}
}
var s = new MyString("hello!");
s.myfunction();
console.log(s + '');