2012-07-03 151 views
0

在js代码共享如下规定 -JavaScript的情况下在嵌套函数

var tclass = function(){ 
    this.func2=function(){console.log('func2')}; 
    this.b={ 
     func1: function(){console.log('func1')} 
    } 
} 

我怎么叫内FUNC1 FUNC2在同一个实例?

回答

3

您必须在封闭中保留对this和该函数的引用。

var tclass = function(){ 
    var obj = this; 
    function func2(){console.log('func2')}; 
    this.func2 = func2; 
    this.b={ 
     func1: function(){ obj.func2(); } 
    } 
} 

而且它更有效与实际的函数声明语句声明功能:

function tclass() { 
    // ... 
} 
+1

或者只是'obj.func2()'。 – James

+0

@ 999 ohh durr你是对的:-) – Pointy