2014-02-28 28 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(); 
相关问题