Я беру уроки JavaScript / jQuery на codecademy.com. Обычно уроки дают ответы или подсказки, но в этом случае они не помогают, и меня немного смущают инструкции.
Он говорит, что функция makeGamePlayer должна возвращать объект с тремя ключами.
//First, the object creator
function makeGamePlayer(name,totalScore,gamesPlayed) {
//should return an object with three keys:
// name
// totalScore
// gamesPlayed
}
Я не уверен, должен ли я это делать
//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;
}
или что-то вроде этого
//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;
}
}
Я должен иметь возможность изменять свойства объекта после его создания.
источник
new
ключевым словом , я предложил бы начать имя с большой буквы:MakeGamePlayer
.new GamePlayer()
.Вы можете просто сделать это с помощью литерала объекта :
function makeGamePlayer(name,totalScore,gamesPlayed) { return { name: name, totalscore: totalScore, gamesPlayed: gamesPlayed }; }
источник
Оба стиля, с небольшой доработкой, подойдут.
Первый метод использует конструктор Javascript, который, как и большинство других вещей, имеет свои плюсы и минусы.
// 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);
С другой стороны, ваш другой метод называется «Выявление паттерна закрытия», если я правильно помню.
function makePerson(name2, age2) { var name = name2; var age = age2; return { name: name, age: age }; }
источник
Последний способ сделать это с помощью ES2016 JavaScript
let makeGamePlayer = (name, totalScore, gamesPlayed) => ({ name, totalScore, gamesPlayed })
источник
Я бы сказал, что эти указания означают:
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; }
источник