繁体   English   中英

回调 function 中 this 的上下文

[英]The context of this in a callback function

我正在处理一个 API ,它是实例上的一个方法,它返回一个回调 function

   myPlayer.onPlay(function() {
            console.log(this)
        })

现在我希望它的上下文是播放器,但它不是回调 function。 我曾尝试像这样绑定 this 的上下文,但它也不起作用。

我希望这是 myPlayer 因为那是执行 onPlay function 的上下文?

myPlayer.onPlay(function() {
        console.log(this)
    }).bind(this)

我如何让上下文成为玩家的实例? 我错过了什么吗?

你必须做

myPlayer.onPlay(
  function() {
    console.log(this);
  }.bind(myPlayer)
);

由于您没有提供.onPlay将返回的内容,我认为它不会使用bind方法返回 object 。 所以你必须在 function 本身上使用bind 如果您希望它成为myPlayer ,则不能在绑定中使用this ,因为在您当前的调用 scope 中, this并不意味着什么。 它可能意味着什么,但很可能不是玩家,否则你会这样做this.onPlay 您必须将myPlayerbind ,而不是this

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM