我遇到过几次这个问题,我想知道是否可以在不必在父对象的上下文中将 anon 函数绑定到“this”的情况下解决它。
这是我的情况:
我有一个类似数组的对象,我们称之为“numline”,它实现了一个“each”方法。它包含在对象的另一个实例中,我们称之为“numtank”。当前代码如下所示:
function Numtank(numline) {
this.numline = numline;
};
Numtank.prototype.charForElem(elem) {
return "Number: " + elem;
}
Numtank.prototype.toString() {
var str = "";
this.numline.each(function(elem) {
str += this.charForElem(elem); //But 'this' is called in the contex of the 'numline' instance, which dosen't (and shouldn't) have the charForElem class.
});
return str;
}
var tank = new Numtank(arbatraryNumline);
tank.toString(); //Uncaught ReferenceError: charFromElem is not defined in numline
当我问“类似于 Java 的做法”时,我的意思是 Java 如何允许您将类名添加到“this”以指定要使用的“this”。
有没有办法绕过这个而不必将匿名函数绑定到这个?