Javascript性能,重新创建功能还是绑定呢?

时间:2016-04-27 09:13:40

标签: javascript performance callback closures bind

我的应用是一台本地服务器,每秒接收 2/3次请求

在每个请求中,它存储和更新数据,处理一些计算,更新视图(反应),......

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

  • 只需创建我需要的功能:

    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函数将被创建一次,并且将调用绑定而不是重新创建函数。

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

1 个答案:

答案 0 :(得分:1)

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

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