gpt4 book ai didi

javascript - 如何传递可能尚未定义或可能在某个时刻发生更改的处理程序函数?

转载 作者:行者123 更新时间:2023-11-27 22:45:01 25 4
gpt4 key购买 nike

我问这个问题是因为我觉得有比使用匿名函数来包装调用更干净的方法来解决这个问题。

    // This does not work because it passes the value found 
// at obj.init at the time of binding.

scope.on('anEvent', obj.init);

// This works because it is wrapped in the anonymous function and the
// obj.init method that gets run is whatever it is currently defined as.

scope.on('anEvent', function() { obj.init(); });

我希望每当发出“anEvent”时就调用最新的方法(obj.init)。

最佳答案

您绑定(bind)的不是变量,而是。原始的 obj.init 会将此时的值绑定(bind)为事件处理程序。您不能绑定(bind)“变量”并稍后重新评估其值。要在事件触发时重新评估变量,这确实是最直接的选项:

scope.on('anEvent', function() { obj.init(); });

关于javascript - 如何传递可能尚未定义或可能在某个时刻发生更改的处理程序函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38460198/

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