我正在尝试优化我的JavaScript代码的速度,我想知道的一件事是.call()的速度与在对象的原型中查找方法的成本相比如何。
例如,我在原型中有一个包含40个方法和属性的类。我假设对于给定对象,通常会覆盖5到15个这些属性。将类的方法抽象到另一个对象并使用
会更快吗?var class = function() {};
var sub = { method: function() { this.prop = "something"; };
var obj = new class();
sub.method.call(obj);
[编辑]甚至
var class = function() {};
class.prototype.method = function() { this.prop = "something"; };
var obj = new class();
class.prototype.method.call(obj);
[/编辑]
还是更直观的方式?
var class = function() {};
class.prototype.method = function() { this.prop = "something"; };
var obj = new class();
obj.method();
在我的有限测试中,似乎没有太大的区别。显然,jsPerf也失败了......