function selfUpdate() {   
  window.selfUpdate = function() {   
  alert('second run!');   
  };   
  alert('first run!');   
}   
selfUpdate(); // first run!   
selfUpdate(); // second run!   为什么先是first run 。后面为什么又没有first run了。

解决方案 »

  1.   

    运行第一次selfUpdate已经将selfUpdate更新为function() {  
      alert('second run!');  
      };  
      

  2.   

    window.selfUpdate = function() {   
      alert('second run!');
    这一部分是重新定义了selfUpdate函数,也就是说第二次运行时selfUpdate的函数体是
    function selfUpdate(){
    alert("second run");
    }
    所以会有那样的后果。