如何从事件侦听器访问函数。JavaScript

如何从事件侦听器访问函数。JavaScript,javascript,event-listener,Javascript,Event Listener,我在标题中有一个事件侦听器: window.onkeydown = function(e) { var key = e.keyCode ? e.keyCode : e.which; if(key == 27) { var panel = document.getElementById('largeImgPanel'); hideMe(panel); } if(key == 39) { arrow_right.onclick

我在标题中有一个事件侦听器:

window.onkeydown = function(e) {
    var key = e.keyCode ? e.keyCode : e.which;
    if(key == 27) {
        var panel = document.getElementById('largeImgPanel');
    hideMe(panel);
    }
    if(key == 39) {
        arrow_right.onclick = onRight; //Wrong
    }
};
我有一个功能:

window.onload = function() {
           ...
    var onRight = function showNext(img_thumb) {
    index = index + 1;
    document.getElementById('largeImg').src = arr_big[index].src;
    showLargeImagePanel();
    unselectAll();
};
arrow_right.onclick = onRight;
我的问题是:
如何从事件侦听器“执行”onRight变量

允许
onRight
成为全局变量。虽然这并不总是可取的,但在这种情况下,它会起作用。记住

然后你可以用同样的方式访问它

arrow_right.onclick = window.onRight;

为了能够相互访问,这两个变量必须共享作用域-因此,如果我将onRight变量设置为全局变量,那么可以通过增加一个可访问性来共享它们的作用域,这是一个错误,因为此函数的一半信息尚未加载:/so在
onload
listener中添加
onRight
事件侦听器callback@GudronSwiss-您不必担心这一点,因为如果信息位于函数内部,则在调用之前不会收集信息。并且在加载页面之前不会调用它。
arrow_right.onclick = window.onRight;