Я создал функцию построения, которая создаст простой персонаж видеоигры. Конструктор принимает name
в качестве аргумента и устанавливает свойство hName
. Построенный объект имеет другие свойства, такие как speed
, defaultEnergy
, energyUsed
и т. Д. (См. Код). Кроме того, у меня есть два метода внутри функции-конструктора: description
и energyLevel
. Я хочу использовать функцию energyLevel
как обратный вызов для функции description
.Функция JavaScript-конструктора возвращает ошибку синтаксического анализа при определении свойств
Ошибка синтаксического анализа на линии this.hName: name,
Вот код JavaScript:
var superHero = function (name) {
this.hName: name,
speed: 7,
defaultEnergy: 20,
energyUsed: 10,
flyAbility: true,
description: function (energyLevel) {
document.write(this.name + " has the capability to hold the hummer.");
energyLevel();
},
energyLevel = function() {
return ("<br>Current energy level is " + (this.defaultEnergy - this.energyUsed));
}
};
hero = new superHero("Thor");
document.write(hero.description());
Я хочу, чтобы следующий результат:
Thor имеет возможность удерживать Хаммера.
Текущий уровень энергии 10
Я знаю, это может быть достигнуто очень легко без использования функции обратного вызова. Но я хочу достичь этого с помощью обратного вызова, потому что мне это нужно в моем остальном проекте, а также поможет понять, почему callback не работает.
Ваша функция почти мгновенно превращается в объектный литерал. Вместо этого вы хотите сделать что-то вроде функции (name) {this.hName = name;} 'для всех свойств. – Sampson
Это недопустимый javascript. Должно быть 'var hName: name;' или 'this.hName = name;' – GolezTrol
да, я пытаюсь построить с ним объект. –