Вы не можете изменить значение строки, строки неизменны. Все, что вы можете сделать, это создать новую строку и вернуть ее:
text = text.toJadenCase()
// ^^^^^^^
String.prototype.toJadenCase = function () {
return this.split(/\s/).map(word => word[0].toUpperCase() + word.substr(1)).join(' ')
}
let text = 'hello world'
text = text.toJadenCase()
alert(text) // hello world
Примечание: для String.prototype
это менее важно, чем для некоторых других, но лучше всего определять все, что вы добавляете во встроенные прототипы (если вы вообще добавляете к ним что-нибудь) как не перечисляемый , который используется по умолчанию при использовании Object.defineProperty
:
Object.defineProperty(String.prototype, "toJadenCase", {
value: function () {
return this.split(/\s/).map(word => word[0].toUpperCase() + word.substr(1)).join(' ');
},
writable: true,
configurable: true
});