почему я вижу undefined, а не true?

190
16 мая 2018, 07:10

Я хочу отобразить сообщение в методе «toString» о статусе персонажа true или false, в зависимости от его здоровья

function Character() { 
        this.health = 100; 
        this.basicDamage = 10; 
        this.toString = function () { 
            return this.name + this.status; // the properties that I want to reflect 
        } 
    } 
Character.createArcher = function () { 
    var hero = new Character; 
    hero.name = "Legolas"; // set hero name 
    return hero; 
}; 
Character.isAlive = function () { 
    var hp = new Character; 
 if (this.health > 0){ 
     hp.status = true; 
 }else if (this.health <= 0){ 
     hp.status = false; 
 }else { 
     alert("ERROR"); 
 } 
 return hp; 
}; 
var archer = new Character.createArcher(); 
console.log(archer.toString());

Answer 1

У только что созданного персонажа свойство status не инициализировано. Вернее, этого свойства у объекта просто нет.

function Character() {
  this.status = "just_born";
  this.health = 100;
  ...
READ ALSO
Vue template compilation failed while parsing file

Vue template compilation failed while parsing file

Все из-за того что к главному скрипту я подключаю сразу несколько компонентовК примеру:

193
Вопрос по fancybox (js альбом)

Вопрос по fancybox (js альбом)

Поставил fancybox, чтобы был нормальный фотоальбомТак вот, я использовал data-caption="", и у меня отображается все слево (некрасивое описание получается)

194
Использование vue.js в landing page

Использование vue.js в landing page

Всем приветУже написал пару простых SPA на vue

672