Skip to content
Advertisement

Referencing a javascript object from within its declaration

Why is it possible to reference an object from within the object directly? For example:

var object = {
    prop1 : "Prop 1",
    prop2 : "Prop 2",
    func : _ => console.log(object)
}

object.func();

//output {prop1: 'Prop 1', prop2: 'Prop 2', func: ƒ}

Similarly I could do:

var object = {
    prop1 : "Prop 1",
    prop2 : "Prop 2",
    func : function() { console.log(this) }
}

object.func();

This will result in the same output as above. I am mainly trying to understand why it is legal to reference the variable name object from inside its declaration.

Advertisement

Answer

Attempts to access variables inside functions are not resolved until the function is called … which will be after the object is created.

User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement