我試圖改變其protoype函數中的字符串值:字符串原型改變字符串值
String.prototype.myfunction=function(){
this += "a";
return this;
};
但是,因爲它似乎我不能改變的價值。如果我試圖在控制檯上運行,我只是得到錯誤:Uncaught ReferenceError: Invalid left-hand side in assignment
是否可以更改字符串值? 在此先感謝
我試圖改變其protoype函數中的字符串值:字符串原型改變字符串值
String.prototype.myfunction=function(){
this += "a";
return this;
};
但是,因爲它似乎我不能改變的價值。如果我試圖在控制檯上運行,我只是得到錯誤:Uncaught ReferenceError: Invalid left-hand side in assignment
是否可以更改字符串值? 在此先感謝
字符串是不可變:
如果你的例子是平凡變更爲它工作得很好。您可能需要使用字符數組來代替:
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 + '');
參見[我如何得到「該=這個」原型工作(http://stackoverflow.com/q/ 28148196/1048572)或[將對象分配給「this」](https://stackoverflow.com/questions/15598549/assign-object-to-this) – Bergi