我正在编写一个开源 javascript 库,并且我.bind()
大量使用方法,因为我认为面向对象的代码看起来更清晰。(虽然有争议)
例子
A1:
var that = this;
setTimeout(function () {
that.method();
}, 0);
对比
B1:
setTimeout(this.method.bind(this), 0);
或者,更实用的代码部分
A2:
remoteDataSource.getData(function (a, b, c, d) {
obj.dataGetter(a, b, c, d);
})
与 B2:
remoteDataSource.getData(obj/* or prototype */.dataGetter.bind(obj));
bind
我为旧版浏览器使用了非本机,一切都很完美,直到我为 bind 打开了一个 jsperf 基准。
看起来代码使用bind
速度要慢 100 倍。现在,在重写我所有的库之前,我有一个问题要问那些熟悉 javascript 引擎的人:
作为一个新特性,是否有可能bind
很快得到优化,或者由于 JavaScript 架构限制而没有机会?