Ich arbeite an einem Programm, das ein Objekt namens "Player" hat, die aus dem Konstruktor "Schlange" erstellt wird.Javascript: "Dies" in geschachtelten Objekten
var player = {
x: 0,
sayX: function() {
console.log(this.x);
}
}
Dieser Code funktioniert gut. Ich möchte jedoch von einem anderen Objekt namens "ani" auf die Funktion "sayX" zugreifen.
var ani = {
x: 10,
sayAll: function() {
console.log(this.x);
player.sayX();
}
}
Wenn ich versuche, ani.sayAll, sayX Protokolle nicht definiert laufen, weil es ein „this“ verwendet, aber ich konnte nicht angeben, welche „dieses“ wurde verweist.
Gibt es eine Möglichkeit, um dieses.
EDIT: Eigentlich ist der gesamte Code in einem anderen Objekt. Hätte das etwas damit zu tun?
[funktioniert gut für mich.] (Https://jsfiddle.net/qbmq2td2/) müssen Sie etwas anderes zu tun werden. –
Wenn Sie 'player.sayX();' aufrufen, bezieht sich 'this' auf' player'. Werfen Sie einen Blick auf die [MDN-Dokumentation zu 'this'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this). –
player.sayX() funktioniert korrekt, aber wenn ich es innerhalb von ANI ausführe, protokolliert es undefined. – Polygon