0
私は別のクラスを拡張するクラスを持っています。しかし、 "this"を参照しようとする親クラスで定義された関数は、 "this"が定義されていないという例外をスローします。ここに関連するコードは次のとおりです。Js継承したクラスインスタンスが未定義
class Entity {
constructor() {
this.axes = ['x', 'y'];
...
updatePosition() {
this.axes.forEach(function(axis) {
this.position[axis] += this.velocity[axis];
});
}
}
class Player extends Entity {
constructor() {
super();
....
}
...
}
var player = new Player();
とエラーがスローさ:
.../player.js:25
this.position[axis] += this.velocity[axis];
^
TypeError: Cannot read property 'position' of undefined
あなたはなぜインスタンスが定義されていない知っていますか、そしてどのように私はそれを修正することができますか? ありがとう!
それともに 'self'変数ポインティングを参照することができます:
は「字句この」の下に、ここで続きを読みます'this'はforEach関数の上にあり、forEachの内部には' self'変数があります。 – atrifan
オクラホマ、それを手に入れます。私はjavascriptを嫌い... – nodwj
ええ、私たちはすべて行う;) – apieceofbart