function C(){
    this.do1 = function(){
        this.do2 = function(){
            alert("do2");
        }
    }
}
var o = new C();
o.do1();
o.do2();    // 结果是 do2 如果这里没有这句话function C(){
    this.do1 = function(){
        this.do2 = function(){
            alert("do2");
        }
    }
}
var o = new C();
o.do1();  //为什么不输出do2呢. 难道不是调用这个函数吗?调用了以后不就开始执行do2();    里面的程序吗没有执行吧.

解决方案 »

  1.   

    function C(){
        this.do1 = function(){
            this.do2 = function(){
                alert("do2");
            }
            this.do2();
        }
    } 你只是定义了方法,并没有调用方法。
      

  2.   

    this.do1 = function(){ 
            this.do2 = function(){ 
                alert("do2"); 
            } 
        } 
    do2不是在do1里面吗  do1执行 的话 难道不会执行do2吗
      

  3.   

    你只是在 do1 里 定义了 do2 ,但是并没有执行它!!!就好比你在 全局里 定义了 一个函数,如 
    function a(){ alert(1);}但是 你没有调用他,他一样不执行。你虽然也是执行了全局(浏览页面)