javascript - 创建闭包和 some_func.bind(this) 之间的性能差异

标签 javascript functional-programming prototypejs

我最近用 javascript 编写了很多代码,并且使用 Prototype.js 来帮助完成很多样板文件,只是绑定(bind)方法就非常值得了,因为我喜欢使用闭包而不是对象来执行操作繁重的工作。很难放弃使用 ruby block 养成的习惯。所以这是我的问题:之间是否有任何特定的性能差异

var func = some_func.bind(this);
...
func();

var that = this;
...
some_func(); // we just rename 'this' everywhere inside some_func to 'that'

这些技巧是必需的,因为内部函数默认使用全局上下文而不是外部函数的上下文。特别是哪个版本让事情变得更加“平坦”。如果涉及递归,那么绑定(bind)版本将变得缓慢,因为绑定(bind)将不断折叠函数内部的函数,直到不可能展开事物为止,至少我认为这就是发生的情况。第二个版本有同样的问题吗?

最佳答案

除非您快速运行该操作数千次,否则性能差异实际上可以忽略不计。所以我通常会选择绑定(bind),因为它可以使代码更干净、更不易出现错误。

关于javascript - 创建闭包和 some_func.bind(this) 之间的性能差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4094585/

相关文章:

javascript - 从外部链接调用 JavaScript

javascript - 使用 typescript 中的 javascript 库(具有继承的 javascript 依赖项)

javascript - 监视模拟服务人员(msw)?

function - 函数的参数太多

javascript - Element.insert at bottom-1 原型(prototype)

javascript - 如何使用javascript将数据从一个html页面传递到另一个页面?

javascript - 如何让 Ramda 对面?

scala - 环境 monad 中术语环境的含义

javascript - 如何隐藏图像?我能怎么做?

html - 未调用原型(prototype)函数