@lotrop

Почему значение undefined свойства?

Есть такой код:
Player = {
    height : 96,
    width : 60,
    x : 0,
    y : 0,
    sprite : new Sprite('player', this.x, this.y, 60, 96, 4, 16),
    draw : function(){
        this.sprite.draw(this.x, this.y);
    },
    update : function(){
        this.sprite.update(this.x, this.y);
    }
};

В функции Sprite печатаю список полученных аргументов и на месте this.x, this.y получаю undefined. Остальные параметры передаются хорошо. Это значит я не могу при первом объявлении пользоваться внутренними свойствами объекта?
  • Вопрос задан
  • 262 просмотра
Решения вопроса 2
у вас в месте объявления контекст window (или другой функции, в которой вызван этот код), но не объекта Player

Player = {
    height : 96,
    width : 60,
    x : 0,
    y : 0,
    draw : function(){
        this.sprite.draw(this.x, this.y);
    },
    update : function(){
        this.sprite.update(this.x, this.y);
    }
};
Player.sprite  = new Sprite('player', Player.x, Player.y, Player.width, Player.height, 4, 16),
Ответ написан
nazarpc
@nazarpc
Open Source enthusiast
this.x вы вызываете в контексте вышестоящего кода.
Это классическая ошибка. Вопрос не в том, когда, в в том, где.
Поскольку начальные значения у вас одинаковые можете просто 0, 0 написать, как вы сделали с остальными значениями.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
miraage
@miraage
Старый прогер
Вы издеваетесь? Я вижу подобные вопросы чуть ли не каждую неделю. Пользуйтесь поиском.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы