我正在比较两种不同类型的 setter 的性能,如下所示:
var q={};
var z={};
(function(){
var x=1;
q.x=function(){
return x;
};
q.x.set=function(val){
x=val;
};
})();
(function(){
var x=1;
z.x=function(){
return x;
};
z.x_set=function(val){
x=val;
};
})();
区别在于 setter 的存储位置:q.x.set
vs z.x_set
。我希望该z
变体运行得更快,因为它需要更少的表查找。相反,该q
变体始终更快。任何想法为什么?这是 jsperf:http: //jsperf.com/hq7f3