gpt4 book ai didi

javascript - 一种更快、更干净的方法来替换 JavaScript 中的绑定(bind)

转载 作者:行者123 更新时间:2023-12-02 18:41:27 25 4
gpt4 key购买 nike

所以我想知道绑定(bind)或应用哪个更快?有具体的证据吗(我在 jsperf 上玩了大约一个小时,答案如下)。

最佳答案

http://jsperf.com/apply-verses-bind/3

正如你所看到的,我已经运行了几种情况,但事实证明,包装函数并在作用域上调用函数是最快的(大约比 bindapply< 快 2 倍)/)。

对于那些懒得查看 jsperf 的人,这里是结果。

var myObject = {
count: 0,
fn: function() {
this.count += 1;
}
};

var bindFn = myObject.fn.bind(myObject);
var applyFn = (function(fn, scope) {
return function() {
fn.apply(scope, []);
}
})(myObject.fn, myObject);
var unboundFn = myObject.fn;
var preBound = (function(fn, scope) {
return function() {
scope[fn]();
};
})('fn', myObject);

preBound 以大约 2 倍的速度获胜。于是我想到了一个很棒的实用程序类。

return {
superBind: function(fn, scope) {
return function() {
scope[fn]();
}
}
};

繁荣, super 绑定(bind):)

关于javascript - 一种更快、更干净的方法来替换 JavaScript 中的绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16794876/

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