2015-11-02 24 views
-1
var Ok = { 
     defineVars : function() 
     { 
      var integerr = 0; 
      for(i=0; i<5; i++) 
      { 
       Ok.countUp(integerr); 
      } 
     }, 
     countUp : function (integerr) 
     { 
      integerr = integerr + 1; 

      console.log(integerr); 
     } 
    } 
    Ok.defineVars(); 

這是一個非常簡化的真實代碼。解釋我的行爲會花費太長的時間,但我需要在Ok.defineVars()中將一個變量添加到integerr中定義爲0。在以下shema中計數

謝謝

回答

0

可惜integerr不按引用傳遞,所以它始終爲0。你可以通過這兩個功能改變結構,使integerr一個全局變量訪問:

var Ok = { 
     integerr: 0, 
     defineVars : function() 
     { 
      for(i=0; i<5; i++) 
      { 
       Ok.countUp(Ok.integerr); 
      } 
     }, 
     countUp : function (integerr) 
     { 
      Ok.integerr = integerr + 1; 

      console.log(Ok.integerr); 
     } 
    } 
    Ok.defineVars(); 

或者利用通過引用傳遞的對象並執行類似操作:

var Ok = { 
     defineVars : function() 
     { 
      var integerr = {num:0}; 
      for(i=0; i<5; i++) 
      { 
       Ok.countUp(integerr); 
      } 
     }, 
     countUp : function (integerr) 
     { 
      integerr.num = integerr.num + 1; 

      console.log(integerr.num); 
     } 
    } 
    Ok.defineVars(); 
+0

謝謝!第二種方法完美的作品:) – Adhskid