在Array.map()中调用类方法

时间:2012-08-14 10:43:12

标签: javascript

这就是我想要的:

function MyClass() {
   this.some = new Array();
   this.another = new Array();
}

MyClass.prototype.some_method = function(element) {
   // some work with this.some
}

MyClass.prototype.another_method = function() {
   this.another.map(function(el) {
     this.some_method(el);   // error code
   });
}

但是我得错了:

Uncaught TypeError: Object [object Window] has no method 'empty_cell' 

是否可以在匿名函数中调用MyClass方法?

1 个答案:

答案 0 :(得分:3)

您可以将this范围作为第二个参数传递给map函数,如下所示:

MyClass.prototype.another_method = function() {
   this.another.map(function(el) {
     this.some_method(el);
   }, this); // added this
}