【问题标题】:Javascript performance, recreate function or bind then?Javascript性能,重新创建函数还是绑定呢?
【发布时间】:2016-08-21 11:41:33
【问题描述】:

我的应用程序是一个本地服务器,每秒接收大约 2/3 个请求

在每次请求时,它都会存储和更新数据,处理一些计算,更新视图(react),...

当我必须使用闭包时,我想知道什么更快

  • 只需在我需要的地方创建函数:

    var parentValue = 'ok';

    randomAsyncFunction(function() { console.log(parentValue); }

  • 创建一个“全局”函数,然后将回调绑定到所需的值:

    function testCallback(value) { console.log(value); }

    var parentValue = 'ok'; randomAsyncFunction(testCallback.bind(undefined, parentValue));

注意:这些伪代码将每秒执行 2/3 次。对于第二个示例,testCallback 函数将被创建一次,并且将调用绑定而不是重新创建函数。

那么,使用第二个例子是好还是坏?

【问题讨论】:

  • 每秒 23 个请求?没什么。您不需要关心性能。

标签: javascript performance callback closures bind


【解决方案1】:

bind 和闭包函数表达式都会创建一个新的函数对象。他们在性能上的差异可以忽略不计。如果您真的很在意,请使用您的实际代码和真实数据运行基准测试,看看哪个解决方案更快。

在您的情况下,您应该只关心哪种解决方案更具可读性和可维护性。没有一个比另一个更好或更差,你必须自己决定你更喜欢哪个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 2014-09-19
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    • 2016-03-18
    相关资源
    最近更新 更多