我有一个如下对象:
{ 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
作为它的父对象。