我在http://www.jquery4u.com/javascript/shorthand-javascript-techniques/上看到了一篇文章,其中他谈到了使用switch语句的另一种方法.
我在下面创建了一个片段,但我不确定为什么替代品会慢99%.
function doX(){}
function doY(){}
function doN(){}
var something = 1;
var cases = {
1: doX,
2: doY,
3: doN
};
if (cases[something]) {
cases[something]();
}
Run Code Online (Sandbox Code Playgroud)
http://jsperf.com/alternateswitch
任何的想法?
"JSON"语法只是一个对象.此外,您的比较在这里有点不公平,因为您在每个定时循环中创建一个全新的对象,这有点贵.
如果将对象创建移动到设置部分,速度差异将变为可忽略不计:http://jsperf.com/alternateswitch/4
如果删除该if语句,该对象将更快(至少对我而言):http://jsperf.com/alternateswitch/5.额外的属性查找和真实性检查确实减慢了速度.