gpt4 book ai didi

javascript - 在 JavaScript 中绑定(bind)到原始 this

转载 作者:行者123 更新时间:2023-12-03 12:28:36 24 4
gpt4 key购买 nike

我有一个对象如下:

{ except: player => ({ send :player.getSocket().broadcast.emit }) }

然而,这意味着 emit 函数中的 this 不是它期望的那个(broadcast 对象)。

所以我可以这样做:

{ except: player => ({ send : (msg, data) => player.getSocket().broadcast.emit(msg, data) }) }

但这很丑陋,尤其是当参数发生变化时。所以备选方案是:

{ except: player => ({ send : (t = player.getSocket().broadcast).emit.bind(t) }) }

但是有没有一种更简洁的方法可以做到这一点,将一个函数分配给一个对象,同时保持它是 this 作为它的父对象。

最佳答案

您可以通过使用 apply 调用函数来指定 this 是谁或 call .这些方法的第一个参数将是函数体内的 this

关于javascript - 在 JavaScript 中绑定(bind)到原始 this,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30484950/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com