首页 > js函数生命周期疑问

js函数生命周期疑问

js的函数生命周期分为:创建和调用。
那么,创建时期如何理解。
我举出两个代码示例:

1.单层的函数

var x=10;
function f(){
    alert(x);
}

2.函数嵌套

function f(){
    var x=2;
    function inner(){
        return x;
    };
    return inner;
}

因为执行环境分为:进入执行上下文和执行代码阶段。

那么,对于第一个示例,函数f的创建时期是什么时候?

第二个示例,inner函数的创建时期是什么时候?


js中函数声明和函数表达式都可以定义函数。
函数声明属于VO对象,在进入上下文阶段创建
函数表达式不属于VO对象,在执行上下文阶段创建
函数表达式与函数声明(http://www.cn-cuckoo.com/main/wp-content/uploads/2009/12/named-function-expressions-demystified.html#expr-vs-decl)
finner都是函数声明,在进入各自的上下文阶段创建


  1. 都是函数声明。
  2. 函数声明在预编译(执行代码前)阶段创建。

体会一下:

alert(typeof f)
function f(){}
【热门文章】
【热门文章】