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限制

在ES6中,是否使用箭头函数
()=>{}
作用域或上下文(
)?简而言之,我认为两者都不可能。如果您想要方法的上下文,范围是不同的mechanism@deceze纠正错误。您和slebetman是正确的。基本上,您的函数不应该依赖于传递的回调的上下文。这是回调的一个内部细节,您的函数应该对此不感兴趣。回调的上下文取决于它的环境,环境可能会随着时间的推移而改变,并且不应该与函数的需要相耦合。