Frage von luiluilui2, 30

Jaascript String aus einer Klasse auslesen mit einem String?

Ich komme mir gerade so or als ob ich das offensichtliche nicht sehe.

var ItemGallery = {
    a : {type : "food"      ,name : "Water" },
    b : {type : "food"      ,name : "Boons" },
    getName: function(id){
        return this.id.name;
    }
}

Man soll durch

ItemGallery.getName(b);

'Boons' erhalten.

Wie kann man denn this.b.name simulieren wenn id mitgeliefert wird?

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von ceevee, 19

In deinem Fall richtig wäre

getName: function(id){
return this[id].name;
}

Aufruf dann logischerweise mit

ItemGallery.getName("b");

Du hast übrigens keine Klasse, ItemGallery ist ein JS-Objekt. Richtig objektorientiert würde der Code ungefähr so aussehen

function ItemGallery() {
this.a = {type : "food", name : "Water" },
this.b = {type : "food", name : "Boons" }
}

ItemGallery.prototype.getName = function(id) {
return this[id].name
}

var itemGallery = new ItemGallery();
console.log(itemGallery.getName("b"))
Kommentar von luiluilui2 ,

Ich wollte sowas wie Math machen, dass man es nicht anlegen muss. [id] funktioniert auch ohne string? dachte das wäre für strings. Aber danke

Kommentar von luiluilui2 ,

Edit: Fehler doch nicht vorhanden

Keine passende Antwort gefunden?

Fragen Sie die Community