为什么 对于对象 用 = 号赋值 比如  var sevent = window.event 对于 window.event 对象的属性都过来了,值却会丢掉.
原因是什么?对于对象拷贝(备份) 怎么做才是正确的?

解决方案 »

  1.   

    因为是一个地址的复制.类似java.得到的只是个副本,指向这个地址而已
    给你个我自己用的深复制的方法var DeepCopy = function(destination, source){
        for (var property in source) {
            var copy = source[property];
            if ( destination === copy ) continue;
            if ( typeof copy === "object" ){
                destination[property] = DeepCopy(destination[property] || {}, copy);
            }else{
                destination[property] = copy;
            }    }
        return destination;
    }
      

  2.   

    LZ是怎么判断window.event对象的值丢了?通过=进行赋值应该是没问题的,而且你说event别的属性都没问题,那么event.value本身也应该没问题的了,除非event.value的值是空的,导致你做出值丢掉了的判断,或者中间又有别的event产生,导致你看到的eveny.value不是你所期望的value
      

  3.   

    window.event在两次事件中本来就是不同的临时对象,而且随着事件结束会被释放。
      

  4.   


     function loginFormSubmit(event)
    {
        storeEvent(event);
        var name = jQuery('#loginForm [name="name"]').val();
        var password = jQuery('#loginForm [name="password"]').val();    if(!name) {
            jQuery('#loginForm [name="id"]').focus();
            showError('\u8bf7\u8f93\u5165\u8d26\u53f7',event);
            return false;
        }
        if(!password) {
             jQuery('#loginForm [name="password"]').focus();
             showError('\u8bf7\u8f93\u5165\u5bc6\u7801',event);
             return false;
        }
        jQuery.post('?inajax=1&page=login&action=login&name=' + name + '&password=' + encodeURIComponent(password) , function(s){
            if(s.substr(0,2) == 'ER')
            {
                showError(s.substr(2), getEvent())
            }
            else
            {
                window.location.href=""
            }
        });
        return false;
    }我是在 JQUERY 的回调函数中 想传递 event  但是 在 FF 下面可以  IE 下面 对于 传递过去的对象,属性纯在.值全部丢弃了...
      

  5.   

    其中的event是关键字,改个名字
      

  6.   

    var sevent = window.event 你认为sevent会将当前触发的对象的相关属性都保存起来是这样吗?event属性仅在发生事件时才会创建。每次创建都因为事件不同,event的事件对象也不相同。
    所以,当事件发生时,sevent变量的指针即指向到其它的内存位置。这也就是我们经常会判断event.type属性的因为了,从而了解事件发生是因为哪种原因来触发的。