扩展String.prototype性能表明函数调用快了10倍 您所在的位置:网站首页 combobox函数 扩展String.prototype性能表明函数调用快了10倍

扩展String.prototype性能表明函数调用快了10倍

2023-03-09 04:15| 来源: 网络整理| 查看: 265

var A = { count: 1234 }; function getCount(obj) { return obj.count } A.getCount = function() { return this.count } console.time('func') for (var i = 0; i

结果:

func: 1689.942ms method: 1674.639ms

我一直在搜索Stackoverflow和binging,但其他建议"不要扩展字符串或数组,因为你污染了名称空间"(这对我的特定项目来说不是问题),我找不到任何与方法性能相关的东西与功能相比.因此,我应该忘记由于添加方法的性能下降而扩展String对象,还是有更多关于它的内容?

1> Bergi..:

这很可能是因为您没有使用严格模式,并且this方法中的值需要强制转换为String实例而不是原始字符串.

您可以通过重复测量来确认这一点var STR = new String('01101011…').

然后修复你的实现:

String.prototype.count = function (char) { "use strict"; var n = 0; for (var i = 0; i @exebook:正如我所说,sloppy模式将`this`值转换为一个对象,所以它需要在每次调用时创建一个`String`实例,这对于像你这样简单的方法来说是一个很大的开销


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有