2

I want to learn more OO JavaScript. I created something like that:

    var Player = {
        player: $('#player'),
        video: Player.player
    };

    console.log(Player.video);

console.log returns Uncaught TypeError: Cannot read property 'player' of undefined. Where's my mistake?

Tomek Buszewski
  • 7,659
  • 14
  • 67
  • 112

2 Answers2

2

You cannot reference an object while initialization. Explanation and suggested solution found here !

Show you may want something like this:

var Player = new function() {
    this.player = $('#player');
    this.video = this.player;
}; 

console.log(Player.player);
Community
  • 1
  • 1
Giannis Grivas
  • 3,374
  • 1
  • 18
  • 38
0

The reason is that Player is not yet defined when assigning video property.

var Player = {
    player: $('#player'),
    video: Player.player  //<- Player is not defined yet. You are defining it right now.
};

Try setting video property after creating the object:

var Player = {
    player: $('#player')        
};
Player.video = Player.player;

console.log(Player.video);
Claudi
  • 5,224
  • 17
  • 30