gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 18:35:06 27 4
gpt4 key购买 nike

我最近在 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com