Javascript JS从arguments对象中的函数提取/使用上下文
例如,可以从另一个传递的回调函数提取并使用绑定函数的上下文吗Javascript JS从arguments对象中的函数提取/使用上下文,javascript,Javascript,例如,可以从另一个传递的回调函数提取并使用绑定函数的上下文吗 var person = { name : 'David', save : function(){ API( function(){ // this is the callback function bound to this console.log( this.name ) // David }.bind(this)) } } var API = functio
var person = {
name : 'David',
save : function(){
API( function(){ // this is the callback function bound to this
console.log( this.name ) // David
}.bind(this))
}
}
var API = function( callback ){
arguments.caller.callee.context.name // ???
}
是否有一种方法可以从API
函数访问绑定的上下文,例如person.name
,而不必将上下文作为另一个参数传递给API
注释
- 上面的示例代码仅用于演示目的,在实际情况下,person和API函数不在同一上下文中,因此在API中简单地输入person.name不是正确的解决方案
- 我们正在寻找ES5解决方案,我们的IE>=10限制
()=>{}
作用域或上下文(此
)?简而言之,我认为两者都不可能。如果您想要方法的上下文,范围是不同的mechanism@deceze纠正错误。您和slebetman是正确的。基本上,您的函数不应该依赖于传递的回调的上下文。这是回调的一个内部细节,您的函数应该对此不感兴趣。回调的上下文取决于它的环境,环境可能会随着时间的推移而改变,并且不应该与函数的需要相耦合。