我正在编写一个函数 add_event,如下所示:
function add_event(o, event_type, callback, capture){
o = typeof o === "string" ? document.getElementById(o) : o;
if(document.addEventListener){
add_event = function(o, event_type, callback, capture){
o = typeof o === "string" ? document.getElementById(o) : o;
o.addEventListener(event_type, callback, capture);
}
}else if(document.attachEvent){
add_event = function(o, event_type, callback, capture){
o = typeof o === "string" ? document.getElementById(o) : o;
o.attachEvent("on" + event_type, callback);
}
}
add_event(o, event_type, callback, capture);
}
现在我的问题是声明是否正确
o = typeof o === "string" ? document.getElementById(o) : o;
影响这个程序的性能?如果你传递一个 HTML 元素而不是一个 id,你实际上执行语句 o = o,这就是我问这个问题的原因。非常感谢。
最佳答案
很可能 js 解释器会优化它。即使没有,效果也不会很明显。如果您真的很担心,请将其更改为:
if(typeof o === "string")
o = document.getElementById(o);
关于javascript - 这个javascript语句会影响性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2415540/