从其声明中引用 javascript 对象

Referencing a javascript object from within its declaration

为什么可以直接从对象内部引用对象?例如:

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

object.func();

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

同样我可以这样做:

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

object.func();

这将产生与上面相同的输出。我主要是想了解为什么从其声明中引用变量名 object 是合法的。

在函数被调用之前,无法解析访问函数内部变量的尝试……这将在创建对象之后进行。