Tomek Buszewski
Tomek Buszewski

Reputation: 7935

Can't access values in JS object

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?

Upvotes: 2

Views: 72

Answers (2)

Giannis Grivas
Giannis Grivas

Reputation: 3412

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);

Upvotes: 2

Claudi
Claudi

Reputation: 5416

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);

Upvotes: 0

Related Questions