在内存使用和效率方面,哪一个更好用,变量或WITH关键字?

时间:2011-04-11 02:12:36

标签: javascript

例如:


var a = document.getElementById("divVar");
    a.style.font="bold 13px verdana";
    a.style.color="#F00";
    ...

with(document.getElementById("divWith")){
    style.font="bold 14px Georgia";
    style.color="#00F";
    ...
}

您认为哪一个更好?

3 个答案:

答案 0 :(得分:3)

with() is considered harmful by Mr Crockford.

原因?如果您认为存在的属性不存在,则很容易破坏现有变量。

来自文章......

  

如果您无法阅读某个程序并确信自己知道该怎么做,那么您就无法确信它能够正常运行。因此,应避免使用with语句。

妥协是你的第一个例子。

答案 1 :(得分:0)

使用和效率我会选择var,因为你的微优化和像alex一样说它在类型的情况下更安全。加上语法编辑器不会捕获它,因为它会认为所有属性都是全局的

答案 2 :(得分:0)

你在任何一种情况下都要查一次 - 但是使用资源的事情是分配然后渲染连续的样式属性更改。

如果您喜欢效率,请不要使用元素的内联样式,或者如果您坚持, 立即进行所有更改 -

的document.getElementById( “divWith”)。style.cssText + = “font:13px verdana bold; color:#f00”;

(要正常使用x-browser,字体速记应以大小开头,然后是系列,其他属性按任意顺序排列。)