Javascript CoffeeScript重写基类型,更改值

Javascript CoffeeScript重写基类型,更改值,javascript,node.js,express,coffeescript,Javascript,Node.js,Express,Coffeescript,我有一个函数覆盖CoffeeScript中的主要类型,但是这个函数返回值,我想改变它自己 String::replaceAll = (what, to) -> regexPattern = new RegExp(what, "g") this.replace regexPattern, to 现在我必须这样使用它: test = test.replaceAll "sth", "sth2" test.replaceAll "sth", "sth2" # only, wit

我有一个函数覆盖CoffeeScript中的主要类型,但是这个函数返回值,我想改变它自己

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
我想这样使用它:

test = test.replaceAll "sth", "sth2"
test.replaceAll "sth", "sth2" # only, without assigning

(this=this.replace regexpatern,to#不起作用)

javascript/coffeescript中的字符串是不可变的,创建后无法更改。所以不可能让它自己修改,只返回一个新值。但是,如果愿意,您可以按照当前设置的方式链接函数,因为它确实返回值

所以

应该可以

工具书类 :

与C语言不同,JavaScript字符串是不可变的。这意味着一旦创建了字符串,就不可能修改它。但是,仍然可以基于对原始字符串的操作创建另一个字符串

因此:


您为什么要这样做?为什么不;你不接受它是这样工作的吗?代码更少,也不关心赋值。我有很多函数ovverides主类型,我想这样使用:“一些字符串”.func().func1().func2(),但是默认函数可以链接,我不明白?