是不是在我给出的示例中调用'inner'函数时,JS引擎在当前作用域中查找'inner'函数的声明(现在它是'inner'的范围'功能)。由于在当前作用域中没有声明它,JS引擎试图在外部作用域中找到“内部”函数声明,而外部作用域正是声明“内部”函数的位置。那么说“内部”函数可以调用自身是正确的,因为使用了范围链吗?
function outer() {
function inner() {
inner();
}
}
谢谢:)
答案 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)
}
每个人都有自己在内存中的位置,而且它自己的变量