gpt4 book ai didi

javascript - 如何对字符串使用链式原型(prototype)

转载 作者:行者123 更新时间:2023-11-29 19:10:09 25 4
gpt4 key购买 nike

我想对字符串使用链式原型(prototype)。但是我返回的字符串原型(prototype)不再适用。如何通过原型(prototype)方法在不返回 this 的情况下修复它,与原生 String.prototype 相同。

function StringUtil(str){
this.str = str;
}

StringUtil.prototype.toCamelCase = function () {
return this.str.replace(/(?:^\w|[A-Z]|\b\w)/g, function(letter, index) {
return index === 0 ? letter.toLowerCase() : letter.toUpperCase();
}).replace(/\s+/g, '');
};

StringUtil.prototype.toSlug = function() {
return this.str.toString().toLowerCase()
.replace(/\s+/g, '-') // Replace spaces with -
.replace(/[^\w\-]+/g, '') // Remove all non-word chars
.replace(/\-\-+/g, '-') // Replace multiple - with single -
.replace(/^-+/, '') // Trim - from start of text
.replace(/-+$/, ''); // Trim - from end of text
};

var util = new StringUtil('this is a custom string');
console.log(util.toCamelCase()) // thisIsACustomString
console.log(util.toSlug()) // this-is-a-custom-string

util.toCamelCase().toSlug() // This does not work

最佳答案

StringUtil.prototype.toCamelCase = function () {
return this.str.replace(/(?:^\w|[A-Z]|\b\w)/g, function(letter, index) {
return index === 0 ? letter.toLowerCase() : letter.toUpperCase();
}).replace(/\s+/g, '');
};

您正在返回 this.str.replace 返回的值,与 String.prototype.replace'return (a string) 相同。

与您的下一个功能相同。

关于javascript - 如何对字符串使用链式原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39586916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com