Estoy tomando algunas lecciones de JavaScript / jQuery en codecademy.com. Normalmente las lecciones brindan respuestas o sugerencias, pero para esta no brindan ninguna ayuda y estoy un poco confundido por las instrucciones.
Dice que la función makeGamePlayer devuelva un objeto con tres claves.
//First, the object creator
function makeGamePlayer(name,totalScore,gamesPlayed) {
//should return an object with three keys:
// name
// totalScore
// gamesPlayed
}
No estoy seguro si debería estar haciendo esto
//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;
}
o algo como esto
//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;
}
}
Tengo que poder modificar las propiedades del objeto después de su creación.
fuente
new
palabra clave Me permito sugerir a partir del nombre con mayúscula:MakeGamePlayer
.new GamePlayer()
.Simplemente puede hacerlo así con un objeto literal :
function makeGamePlayer(name,totalScore,gamesPlayed) { return { name: name, totalscore: totalScore, gamesPlayed: gamesPlayed }; }
fuente
Ambos estilos, con un toque de retoque, funcionarían.
El primer método usa un constructor de Javascript, que como la mayoría de las cosas tiene pros y contras.
// 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);
Por otro lado, su otro método se llama 'Patrón de cierre revelador' si no recuerdo mal.
function makePerson(name2, age2) { var name = name2; var age = age2; return { name: name, age: age }; }
fuente
La última forma de hacer esto con ES2016 JavaScript
let makeGamePlayer = (name, totalScore, gamesPlayed) => ({ name, totalScore, gamesPlayed })
fuente
Yo tomaría esas direcciones en el sentido de:
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; }
fuente