为什么在控制台中打印此对象变量后返回“undefined”值?

时间:2016-08-09 22:57:31

标签: javascript

jsFiddle https://jsfiddle.net/d4rhf23x/

问题:根据我的滚动处理程序,一切都按预期工作,但是如果我这样做了一个有问题的对象变量的手册:console.log(site.globalVars.scrollY);,那么返回正确的值,但之后它也会立即返回undefined

脚本:

<script>

    var site = {

        globalVars: {
            didScroll: false,
            scrollY: 0,
        },

        globalFuncs: {

            ifUserScrollsDoActions: function(){
                if ( site.globalVars.didScroll ) {
                    site.globalVars.didScroll = false;
                    site.globalVars.scrollY = window.scrollY;
                    console.log(site.globalVars.scrollY);
                }
            },

        },

        topMenuElements: {
            mobileMenuLink: document.getElementById('mobile-menu-link'),
        },

    };


    window.onscroll = function () {  
        site.globalVars.didScroll = true;
    }

    setInterval(function() {
        site.globalFuncs.ifUserScrollsDoActions();
    }, 250);


</script>

1 个答案:

答案 0 :(得分:4)

当您将console.log作为函数调用时,它会将参数记录到控制台。

当您从控制台调用console.log作为函数时,它会像控制台中的任何其他函数一样对待它,并记录return值。

console.log返回undefined