Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从String.prototype更改String的值?_Javascript_Node.js_String - Fatal编程技术网

Javascript 如何从String.prototype更改String的值?

Javascript 如何从String.prototype更改String的值?,javascript,node.js,string,Javascript,Node.js,String,我写了这段代码: String.prototype.toJadenCase=函数(){ 返回此.split(/\s/).map(word=>word[0].toUpperCase()+word.substr(1)).join(“”) } let text='hello world' text.toJadenCase() 警报(文本)//hello world您不能更改字符串的值,字符串是不可变的。您所能做的就是创建一个新字符串并返回它: text = text.toJadenCase(

我写了这段代码:

String.prototype.toJadenCase=函数(){
返回此.split(/\s/).map(word=>word[0].toUpperCase()+word.substr(1)).join(“”)
}
let text='hello world'
text.toJadenCase()

警报(文本)//hello world
您不能更改字符串的值,字符串是不可变的。您所能做的就是创建一个新字符串并返回它:

    text = text.toJadenCase()
//  ^^^^^^^
String.prototype.toJadenCase=函数(){
返回此.split(/\s/).map(word=>word[0].toUpperCase()+word.substr(1)).join(“”)
}
let text='hello world'
text=text.toJadenCase()

警报(文本)//hello world
您不能更改字符串的值,字符串是不可变的。您所能做的就是创建一个新字符串并返回它:

    text = text.toJadenCase()
//  ^^^^^^^
String.prototype.toJadenCase=函数(){
返回此.split(/\s/).map(word=>word[0].toUpperCase()+word.substr(1)).join(“”)
}
let text='hello world'
text=text.toJadenCase()

警报(文本)//hello world
text.toJadenCase()
更改为
let text='hello world.toJadenCase()

String.prototype.toJadenCase=function(){
返回此.split(/\s/).map(word=>word[0].toUpperCase()+word.substr(1)).join(“”)
}
let text='hello world'.toJadenCase()

console.log(text)
text.toJadenCase()
更改为
let text='hello world'.toJadenCase()

String.prototype.toJadenCase=function(){
返回此.split(/\s/).map(word=>word[0].toUpperCase()+word.substr(1)).join(“”)
}
let text='hello world'.toJadenCase()

console.log(text)
Since String.prototype.toJadenCase()返回一个值并且不更改原始字符串,text.toJadenCase()不执行任何操作。相反,请使用
text=text.toJadenCase()
或类似的方法。我强烈建议您避免使用
=
运算符指定原型属性。而是使用
Object.defineProperty(String.prototype,'toJadenCase',{value:function(){/*…*/},enumerable:false})。这避免了使用
对。。。在
循环中。@Gershom-虽然公平地说,
对于字符串中的是一件相当狡猾的事情。;-)(但你使用
defineProperty
是对的。通常你会让它可写、可配置,而不是可枚举。[它们都默认为false.])没错@T.J.Crowder!我想为中的对象背书
对象。定义属性
而不背书字符串
:-PSince string.prototype.toJadenCase()返回一个值并且不更改原始字符串,text。toJadenCase()不做任何操作。相反,请使用
text=text.toJadenCase()
或类似的方法。我强烈建议您避免使用
=
运算符指定原型属性。而是使用
Object.defineProperty(String.prototype,'toJadenCase',{value:function(){/*…*/},enumerable:false})。这避免了使用
对。。。在
循环中。@Gershom-虽然公平地说,
对于字符串中的
是一件相当狡猾的事情。;-)(但你使用
defineProperty
是对的。通常你会让它可写、可配置,而不是可枚举。[它们都默认为false.])没错@T.J.Crowder!我想为中的对象背书
对象。定义属性
而不背书字符串
:-P