我的问题是我无法在父类中访问正确的此对象。
家长班:
ViewController.prototype.display = function() {
console.log(this); // Log a Window object
};
儿童班:
ParentMissionsViewController.prototype = Object.create(ViewController.prototype);
ParentMissionsViewController.prototype.constructor = ParentMissionsViewController;
ParentMissionsViewController.prototype.parent = ViewController.prototype;
ParentMissionsViewController.prototype.display = function() {
// Other stuff here
this.parent.display.call();
};
如果有人能解释我的话,我不知道为什么这不是我现在的对象?
答案 0 :(得分:3)
如果你打电话
this.parent.display();
然后它看起来像:
var that = this.parent;
that.display();
你,正如我想的那样,你想避免。使用call
是一种好方法,但您需要提供this
的价值:
this.parent.display.call(this /* , arg, arg... */);
答案 1 :(得分:0)
尝试
this.parent.display();
使用call调用方法时,需要指定自定义此值作为第一个参数。您在当前代码中获得的这个值是多少?我猜不定?