在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/網(wǎng)絡(luò)安全  HTML/ 外層函數(shù)在return時(shí),調(diào)用內(nèi)層函數(shù),沒有返回內(nèi)層函數(shù)的調(diào)用結(jié)果

外層函數(shù)在return時(shí),調(diào)用內(nèi)層函數(shù),沒有返回內(nèi)層函數(shù)的調(diào)用結(jié)果

為了獲取元素?fù)?jù)body的高度偏移量,寫了下面這個(gè)函數(shù):

function getTop(ele){
    var top=0;//設(shè)定初始值
    function getEleTop(ele){
        top+=ele.offsetTop; //top儲(chǔ)存ele的offsetTop
        if(ele.tagName.toLowerCase()=='body'){  //如果ele現(xiàn)在是body,就返回top值
            return top;
        }else{
            getEleTop(ele.offsetParent); //否則,就繼續(xù)調(diào)用這個(gè)函數(shù),獲得ele的定位父元素的offsetTop
        }
    }
    return getEleTop(ele);
}

外層getTop()包裹內(nèi)層getEleTop(),我想用來隱藏top變量,以免暴露出去。

內(nèi)層getEleTop(),我本意想用top來儲(chǔ)存ele的offsetTop,然后用top疊加ele的定位父元素(假設(shè)為faEle)相對于其定位父元素(假設(shè)為paEle)的offsetTop。直到疊加到body為止。
這樣就可以獲得ele相對于body的高度偏移量。

最后內(nèi)層函數(shù)返回top。

我用外層函數(shù)在return的時(shí)候,調(diào)用內(nèi)層的getEleTop(ele),最后并沒有得到top的值。

經(jīng)過一番調(diào)試,我發(fā)現(xiàn)是內(nèi)層函數(shù)沒用return top。所以外層函數(shù)返回的是undefied。

如果外層函數(shù)直接是 return top,就可以準(zhǔn)確返回。

但是為什么內(nèi)層函數(shù)沒有返回top呢?

希望各位大神講解一下!謝謝!

回答
編輯回答
半心人
function getTop(ele){
    var top=0;//設(shè)定初始值
    function getEleTop(ele){
        top+=ele.offsetTop; //top儲(chǔ)存ele的offsetTop
        if(ele.tagName.toLowerCase()=='body'){  //如果ele現(xiàn)在是body,就返回top值
            return top;
        }else{
            // 這里沒有return出去
            return getEleTop(ele.offsetParent); //否則,就繼續(xù)調(diào)用這個(gè)函數(shù),獲得ele的定位父元素的offsetTop
        }
    }
    return getEleTop(ele);
}
2017年5月21日 22:45
編輯回答
挽青絲
return getEleTop(ele.offsetParent);
2017年8月14日 11:03