Estou tendo algumas aulas de JavaScript / jQuery em codecademy.com. Normalmente as aulas fornecem respostas ou dicas, mas para esta não ajuda em nada e fico um pouco confuso com as instruções.
Diz para fazer com que a função makeGamePlayer retorne um objeto com três chaves.
//First, the object creator
function makeGamePlayer(name,totalScore,gamesPlayed) {
//should return an object with three keys:
// name
// totalScore
// gamesPlayed
}
Não tenho certeza se deveria estar fazendo isso
//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;
}
ou algo parecido com isto
//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;
}
}
Tenho que ser capaz de modificar as propriedades do objeto após sua criação.
fonte
new
palavra-chave que eu sugeriria começar o nome com um capital:MakeGamePlayer
.new GamePlayer()
.Você pode simplesmente fazer assim com um literal de objeto :
function makeGamePlayer(name,totalScore,gamesPlayed) { return { name: name, totalscore: totalScore, gamesPlayed: gamesPlayed }; }
fonte
Ambos os estilos, com um toque de ajustes, funcionariam.
O primeiro método usa um Construtor Javascript, que como a maioria das coisas tem prós e 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 outro lado, seu outro método é chamado de 'Padrão de Fechamento Revelador', se bem me lembro.
function makePerson(name2, age2) { var name = name2; var age = age2; return { name: name, age: age }; }
fonte
A forma mais recente de fazer isso com ES2016 JavaScript
let makeGamePlayer = (name, totalScore, gamesPlayed) => ({ name, totalScore, gamesPlayed })
fonte
Eu interpretaria essas instruções como significando:
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; }
fonte