如何从对象内部调用函数

How to call a function from inside an object

假设我在 javascript 中有一个这样的对象:

obj = {
    prop1  : 0,
    prop2  : 1,
    func1 : function (){
         var x = {
             func_Inner : function(){
                 //ATTEMPTING TO CALL FUNC2 ON obj WON'T WORK
                 this.func2()

                 //NEITHER THIS
                 this.func2().bind(obj);
             }
         }
         x.f()
         this.func2() 
    },
    func2 : function (){
         console.log(this)
         console.log(this.prop1,this.prop2)
    }
}

我想从内部调用 func2 func_Inner,我怎么能这样?

问题是函数 func_Inner 的上下文不是 obj 的上下文。

另一种方法是将上下文 this 绑定到函数 func_Inner

var obj = {
    prop1  : 0,
    prop2  : 1,
    func1 : function (){
         var x = {
             func_Inner : function(){
                 //ATTEMPTING TO CALL FUNC2 ON obj WON'T WORK
                 this.func2()

                 //NEITHER THIS
                 //this.func2().bind(obj);
             }
         }
         // Here's is bound to the current context.
         x.func_Inner.bind(this)(); 
    },
    func2 : function (){
         //console.log(this)
         console.log(this.prop1,this.prop2)
    }
}

obj.func1();