我想用一些实用方法扩展String对象原型.它起作用了,但性能却低得惊人.将字符串传递给函数比覆盖String.prototype执行相同操作的方法快10倍.为了确保这真的发生,我创建了一个非常简单的count()函数和相应的方法.
(我正在尝试,并创建了该方法的三个不同版本.)
function count(str, char) {
var n = 0;
for (var i = 0; i < str.length; i++) if (str[i] == char) n++;
return n;
}
String.prototype.count = function (char) {
var n = 0;
for (var i = 0; i < this.length; i++) if (this[i] == char) n++;
return n;
}
String.prototype.count_reuse = function (char) {
return count(this, char)
}
String.prototype.count_var = function (char) {
var str = this;
var n = 0;
for …Run Code Online (Sandbox Code Playgroud)