我想在onmousemove里做些操作:body.onmousemove
{
  var v = ....  //因为下面要用到变量v,所以上面定义并初始化一下,这样就有个疑惑,是不是每当mouse move的时候,都会重新定义或初始化?如果我换成:if(typeof(v)=="undefinded") var v = .... 呢?如果我把v定义到外面,成为公共变量呢?哪种性能要好一点?  if(...)
  {
    v = ....
    if(v....)
    ..... = v.....
  }}

解决方案 »

  1.   

    这一丁点的性能,没有必要去考虑了,用户根本感觉不到任何变化
    如果说你的变量需要保存一个值,以便下一次事件发生的时候使用的话,可以考虑声明为全局变量
    否则最好不用全局变量,容易乱如果你参考一下一些框架的源代码,比如prototype.js,里面基本不会出现全局变量
    即使有需要的地方,也会通过闭包的方法封闭起来
    所以说,全局变量不推荐使用