如何从对象内部调用函数
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();
假设我在 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();