javascriptwith:JavaScript慎用with

="t18">像我这样最初并不是系统学习JavaScript看到with这个东西感觉是兴奋——不用再重复地写“element.style.xxx = …”了只需要

view plaincopy to clipboardpr?
with (element.style) {
xxx = ...;
yyy = ...;
...
}

with (element.style) {
xxx = ...;
yyy = ...;
...
}但是作为解释型语言JavaScript都需要在运行时来决定xxx/yyy到底是什么东西对每个名字(不仅仅是被赋值也包括读取变量!)它会首先去在with括号里对象属性里去寻找然后才会找局部变量最后是全局变量在JavaScript虚拟机、JIT技术普及的前这种性能问题需要非常注意

正确做法是给element.style做个local variablecache:

view plaincopy to clipboardpr?
var es = element.style;
es.xxx = ...;
es.yyy = ...;
...

var es = element.style;
es.xxx = ...;
es.yyy = ...;
...这样不仅相对减少了代码大小同时性能上也比element.style.xxx = … 要好得多


Tags:  javascript数组 javascript教程 javascript javascriptwith

延伸阅读

最新评论

发表评论