一个函数如何才能访问自己?

时间:2018-01-16 15:06:06

标签: javascript

是不是在我给出的示例中调用'inner'函数时,JS引擎在当前作用域中查找'inner'函数的声明(现在它是'inner'的范围'功能)。由于在当前作用域中没有声明它,JS引擎试图在外部作用域中找到“内部”函数声明,而外部作用域正是声明“内部”函数的位置。那么说“内部”函数可以调用自身是正确的,因为使用了范围链吗?

function outer() {
    function inner() {
        inner();
    }
}

谢谢:)

2 个答案:

答案 0 :(得分:0)

外部函数与给出的示例无关。以下也可以:

function inner() {
    inner();
}

所以,不。它无法通过外部函数访问。

答案 1 :(得分:0)

我所知道的是,调用自身将在内存中创建一个新的位置,因此它是另一个副本(或者让类型的实例)自身,但是其中包含每个变量的另一个副本,说:

function outer() {
    function inner(params) {
        //ignore existance of the stop condition
        //at first call params is 3 then it will be 2
        inner(2);
    }
    inner(3)
}

每个人都有自己在内存中的位置,而且它自己的变量