Also sagen wir, ich habe eine Kachel auf einer Karte.Machen Sie eine Variable die Methoden eines vorhandenen Prototyps erben?
function TileData (image, z) {
this.image = image;
this.z = z;
}
var tile = new TileData (tileimage, 0);
Jetzt kann ich tile.image und tile.z aufrufen, um die vorhandenen Daten zu referenzieren.
Ich habe auch ein Array namens map, die ich durchschleifen kann, um die Karte zu zeichnen.
var map = [];
Was ich tun möchte, ist die Methoden der vorhandenen Fliesen in der Anordnung auf den 0-ten Eintrag zu befestigen, so wird es gezogen werden, wenn die Funktion aufgerufen wird.
Also habe ich versucht, so etwas zu tun.
So kann ich map [0] .image aufrufen, um das Bild zu erhalten, das diese Kachel auf der Karte darstellt.
Jetzt möchte ich das Bild dieser Fliese ändern, also versuche ich dies zu tun.
map[0].image = differentTileImage;
aber eigentlich, was Javascript tut, ist dies:
tile.image = differentTileImage;
die jederzeit bedeutet, dass ich versuchen, diese Kachel für einen anderen Teil der Karte zu verwenden, wird es einen anderen Wert haben.
map[1] = tile;
//map[1].image will return differentTileImage instead of tileimage.
Gibt es eine Möglichkeit für eine Variable, die Eigenschaften und Werte eines vorhandenen Prototyps zu erben, statt nur darauf Bezug zu nehmen?
(Sorry, wenn dies ein Betrogener ist).
Die triviale Lösung scheint hier zu sein: map [0] = new TileData (differentTileImage, map [0] .z) ', obwohl ich sehen konnte, dass der' TileData' -Konstruktor komplexer wird. – apsillers