function test() {
    test.t++;
}
    test.t = 0; 
for(var i = 0; i < 10; i++) {
     test();
}
alert(test.t);  // 为什么他每次调用之后不会被销毁啊,难道它是一个静态变量? 只属于test();?  

解决方案 »

  1.   

    所有函数外部定义的变量都属于window对象,你每次调用时他就把值存住了。当然不会被销毁了。
      

  2.   

    test.t 是属于 test()的 还是属于window的。
      

  3.   

    http://www.jb51.net/article/20236.htm
      

  4.   

    test.t 是属于 window 的如果你认为他是属于 test 的那么就应该在 test 内部用 this.t 访问到
      

  5.   

    test.t属于test,而test属于window,在成员test.t被test持有,而test是全局的不会被释放,test.t也就不回被释放