2014-02-28 29 views
0

我有一個有趣的問題。以下是我的JavaScript代碼。當我運行this.data.splice(k,1);給出了一個錯誤:「無法調用未定義的」「方法」拼接「。我理解這個問題在每個循環內,this.data不被識別,因爲「this」意味着數組的每一行。問題是如何在這種情況下調用this.data。我試圖嘗試通過ref傳遞的對象,但它; s不工作。我感謝您的幫助。謝謝。如何在foreach循環內的方法內使用「this」來訪問類成員。

var Pastopts = { 
    index: 0, 
    data: [ "one", "two", "three", "four", "five", "six", "seven" ], 
    addOpt: function() { 
      var i = 0; 
     $.each(this.data, function(k, v) { 
      i++; 
      if (i < 6) { 
       this.data.splice(k, 1); 
      } 
     }); 
    console.log(this.data); 
    } 
} 

Pastopts.addOpt(); 
+3

'VAR =那此;' – zerkms

+0

感謝。這樣可行 :) – user3123529

回答

1
var Pastopts = { 
    index: 0, 
    data: [ "one", "two", "three", "four", "five", "six", "seven" ], 
    addOpt: function() { 
      var i = 0; 
      var t_d = this.data; 
     $.each(this.data, function(k, v) { 
      i++; 
      if (i < 6) { 
       t_d.splice(k, 1); 
      } 
     }); 
    console.log(this.data); 
    } 
} 

Pastopts.addOpt(); 
相關問題