2012-07-03 116 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