var n = [];
        n.push(function(){alert(this)});
        n[0](); //为什么这里的this指代是数组对象
var bb =n[0];
    bb();  //这里的this指代的是window对象

解决方案 »

  1.   

     n[0]();  是n 对象下"0" 属性
     var bb =n[0];  
      bb 相当 于 window.bb 
     
      

  2.   

    function func() { alert(this);}
            var n = [];
            n.push( func);
            n[0](); //为什么这里的this指代是数组对象
            var bb = n[0];
            bb();  //这里的this指代的是window对象
            var obj = {func:func };
            obj.func(); //现在this是object
    应该这样理解吧.
     n[0](); ===func.call(n);
     bb();   ===func.call();
     obj.func()===func.call(obj);
      

  3.   

    var A = {
    a : function(){
    var $a = this;
    alert($a);
    }
    }
    A.a();
    var $b = A.a;
    $b();