Ich nehme einige JavaScript / jQuery-Lektionen bei codecademy.com. Normalerweise liefern die Lektionen Antworten oder Hinweise, aber für diese gibt es keine Hilfe und ich bin ein wenig verwirrt von den Anweisungen.
Die Funktion makeGamePlayer soll ein Objekt mit drei Schlüsseln zurückgeben.
//First, the object creator
function makeGamePlayer(name,totalScore,gamesPlayed) {
//should return an object with three keys:
// name
// totalScore
// gamesPlayed
}
Ich bin mir nicht sicher, ob ich das tun soll
//First, the object creator
function makeGamePlayer(name,totalScore,gamesPlayed) {
//should return an object with three keys:
// name
// totalScore
// gamesPlayed
this.name = name;
this.totalScore = totalScore;
this.gamesPlayed = gamesPlayed;
}
oder so ähnlich
//First, the object creator
function makeGamePlayer(name,totalScore,gamesPlayed) {
//should return an object with three keys:
// name
// totalScore
// gamesPlayed
var obj = {
this.name = name;
this.totalScore = totalScore;
this.gamesPlayed = gamesPlayed;
}
}
Ich muss in der Lage sein, die Eigenschaften des Objekts nach seiner Erstellung zu ändern.
quelle
new
ich vorschlagen würde, den Namen mit einem Großbuchstaben zu beginnen , wenn Sie ihn mit dem Schlüsselwort aufrufen :MakeGamePlayer
.new GamePlayer()
.Sie können es einfach so mit einem Objektliteral machen :
function makeGamePlayer(name,totalScore,gamesPlayed) { return { name: name, totalscore: totalScore, gamesPlayed: gamesPlayed }; }
quelle
Beide Stile würden mit einem Hauch von Optimierung funktionieren.
Die erste Methode verwendet einen Javascript-Konstruktor, der wie die meisten Dinge Vor- und Nachteile hat.
// By convention, constructors start with an upper case letter function MakePerson(name,age) { // The magic variable 'this' is set by the Javascript engine and points to a newly created object that is ours. this.name = name; this.age = age; this.occupation = "Hobo"; } var jeremy = new MakePerson("Jeremy", 800);
Auf der anderen Seite heißt Ihre andere Methode "Revealing Closure Pattern", wenn ich mich richtig erinnere.
function makePerson(name2, age2) { var name = name2; var age = age2; return { name: name, age: age }; }
quelle
Der neueste Weg, dies mit ES2016 JavaScript zu tun
let makeGamePlayer = (name, totalScore, gamesPlayed) => ({ name, totalScore, gamesPlayed })
quelle
Ich würde diese Anweisungen so verstehen:
function makeGamePlayer(name,totalScore,gamesPlayed) { //should return an object with three keys: // name // totalScore // gamesPlayed var obj = { //note you don't use = in an object definition "name": name, "totalScore": totalScore, "gamesPlayed": gamesPlayed } return obj; }
quelle