JavaScript没有返回价值

时间:2015-07-09 16:38:49

标签: javascript

我有一些简单的代码可以返回我是否向上或向下滚动。我想将它用作return的函数,如下所示:

var scripts = {
getScrollDirection: function() {
    var dir;
    $(document).on('mousewheel DOMMouseScroll', function(e) {
        if(e.originalEvent.wheelDelta / 120 > 0) {
            dir = 'up';
        } else {
            dir = 'down';
        }
    });
    return dir;
}
}

当我致电scripts.getScrollDirection时,我得到了未定义。我做错了什么?

1 个答案:

答案 0 :(得分:2)

您声明了dir,它会自动初始化为undefined。 然后,您将一个函数注册为事件处理程序。 然后您返回dir的值,该值仍为undefined,因为尚未为其分配任何值。

https://en.wikipedia.org/wiki/Event-driven_programming

http://cs.brown.edu/courses/cs168/f12/handouts/async.pdf

http://www.i-programmer.info/programming/theory/6040-what-is-asynchronous-programming.html