我相信术语“方法”是否可以创建自己的习惯?例如,如下所示:

var str = "test"
str.replaceSpecial();

其中replaceSpecial()会自动将字母e替换为其他内容。

我对此感兴趣的原因是,我想做的是抓取字符串,然后运行大量替换操作,因此我希望当我调用replaceSpecial()时它将运行一个函数。

谢谢

最佳答案

您可以将方法添加到String.prototype,它将对所有字符串可用。例如,这就是大多数库中实现trim()的方式。

String.prototype.replaceSpecial = function() {
    return this.replace(/l/g, 'L');
};

"hello".replaceSpecial(); // heLLo

但是,请注意,在本机原型(prototype)上定义非常特定的功能通常是一种不好的做法。上面是完全相同的问题的一个很好的例子。对于此类特定情况,请考虑使用自定义函数或包装器来完成此工作。
function replaceSpecial(str) {
    return str.replace(/l/g, 'L');
}

replaceSpecial("hello"); // heLLo

或在自定义 namespace 下。
var StringUtils = {
    replaceSpecial: function(str) { .. },
    ..
};

StringUtils.replaceSpecial("hello"); // heLLo

09-12 06:32