CoffeeScript覆盖基types,更改值
我有一个重写CoffeeScript中的主要types的函数,但是这个函数的返回值,我想改变自己。
String::replaceAll = (what, to) -> regexPattern = new RegExp(what, "g") this.replace regexPattern, to
现在我必须这样使用它:
test = test.replaceAll "sth", "sth2"
我想用这种方式来使用它:
test.replaceAll "sth", "sth2" # only, without assigning
(this = this.replace regexPattern,为#不起作用)
javascript / coffeescript中的string是不可变的,一旦创build就无法更改。 所以它不可能自己修改,只能返回一个新的值。 但是,如果你愿意的话,你可以像你现在设置的那样链接你的函数,因为它返回一个值。
所以
test = test.replaceAll(x,y).replaceAll(a,b)
应该工作正常
参考
MDN :
与像C这样的语言不同,JavaScriptstring是不可变的。 这意味着一旦创build了一个string,就不可能修改它。 但是,仍然可以根据原始string上的操作创build另一个string。
所以:
JavaScriptstring是不可变的吗? 我需要JavaScript中的“string生成器”吗?