JavaScript访问父对象属性

Jo *_*ina 9 javascript oop object

我在JS中有一个小问题,我有两个嵌套对象,我想从父进程中访问变量,如下所示:

var parent = {
    a : 5,

    child: {
        b : 3,
        displayA : function(){
            console.log(this.a);
            //undefined
            },

        displayB : function(){
            console.log(this.b);
            //displays 3
            }
        }
}
Run Code Online (Sandbox Code Playgroud)

我想知道如何使parent.child.displayA工作:)(我有需要访问父变量的子对象)

任何帮助表示非常感谢!

Ori*_*iol 12

您可以使用call设置值this:

parent.child.displayA.call(parent); // 5
Run Code Online (Sandbox Code Playgroud)

您可能也有兴趣绑定它:

parent.child.displayA = function(){
  console.log(this.a);
}.bind(parent);
parent.child.displayA(); // 5
Run Code Online (Sandbox Code Playgroud)

或者你可以使用parent而不是this:

parent.child.displayA = function(){
  console.log(parent.a);
};
parent.child.displayA(); // 5
Run Code Online (Sandbox Code Playgroud)


Dmy*_*vid 5

您可以super.prop用来访问父类属性。当然,仅当您使用ES6时。