可能是我基礎不太好,不知道你們怎麼認為。問題是:
var x = y = 0;

var x = 0;
var y = 0;
是否一摸一樣呢?先睡覺去,明天來看回覆!

解决方案 »

  1.   


    我一般这么写
    var x=0,
        y=0;
      

  2.   

    不一样
    如果在function里面的话 x是局部变量,y是全局变量
    例如这样:
    function a(){
        var x=y=0;
    }
    因为是从左到右赋值的,相当于
    function a(){
        var x=(y=0);
    }
    y前面没有var关键字,所以是全局变量,出乎意料的结果,y可能会命名冲突。。
    所以 一般这么写
    function a(){
        var x=0,
            y=0;
    }
      

  3.   

    和你說的意思差不多,在函數裏面y就變成了全局變量了。
    本來是沒什麼的,但是因為我同一個頁面調用了兩次插件。導致第二個調用時的y和第一個調用時的y相同了。
    大概的代碼為:var prevX = prevY = 0;
    $(document).mousemove(function(e){
        e = e || window.event;
        var currentX = e.pageX;
        var currentY = e.pageY;
        var speedX = currentX - prevX;
        var speedY = currentY - prevY;
        
        ......
        
        prevX = currentX;
        prevY = currentY;
        return false;
    })這樣就導致第二次被調用的speedY一直為0。
      

  4.   

    不会吧?y=0,这个y的值是0没有问题吧?但是y=0,这个语句执行的时候,返回的是true
    呀,所以x应该是boolean类型的true把?
      

  5.   

    可以的吧  不谢var表示的是全局哦 
      

  6.   

    嗯,應該是衝突了。
    反正把
    var prevX = prevY = 0;
    換成
    var prevX = 0;
    var prevY = 0;
    這個就不會出問題了。
      

  7.   

    試了下原來在Jquery的$(document).mousemove(function(){})會變成無效。
    而純JS就不會
    function move()
    {
        var prevX = prevY = 0;
        document.onmousemove =function(e){
            e = e || window.event;
            var currentX = e.pageX;
            var currentY = e.pageY;
            var speedX = currentX - prevX;
            var speedY = currentY - prevY; 
            document.body.innerHTML = speedX + '-' + speedY;
            prevX = currentX;
            prevY = currentY;
            return false;
        }
    }
    move();
    move();