在使用函数表达式声明函数之前调用函数.为什么?

Om3*_*3ga 0 javascript jquery

我声明使用函数表达式两个函数inneroneinnertwo.我首先宣布innerone并在那之后innertwo.在里面innerone我叫innertwo功能.但我担心的是,我innertwoinnerone使用函数表达式后声明,这意味着innertwo没有提升.那么为什么这些功能按此顺序工作?是否必须更改订单?

这是代码

var one = function () {
    var innerone = function () {
        innertwo();
    },

    innertwo = function () {
        console.log('innertwo');
    };

    return {
        innerone: innerone
    };
};

var o = new one();
o.innerone();
Run Code Online (Sandbox Code Playgroud)

Kir*_*lev 5

这是有效的,因为只有在你调用它时才会调用innerone.当它被称为innertwo时被定义.