MST

星途 面试题库

面试题:JavaScript深度表达式嵌套之作用域链与闭包结合

编写一段JavaScript代码,要求实现一个函数outerFunction,在outerFunction内部定义一个函数innerFunction。outerFunction接收一个初始值作为参数。innerFunction需要通过复杂的表达式嵌套,结合作用域链和闭包的知识,实现每次调用innerFunction时返回的结果是上一次调用结果加上outerFunction传入的初始值,并且初始返回值就是初始值本身。例如,outerFunction(5),第一次调用innerFunction返回5,第二次调用返回10(5 + 5),第三次调用返回15(10 + 5) 等。请写出完整代码。
22.0万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
function outerFunction(initialValue) {
    let result = initialValue;
    return function innerFunction() {
        result = result + initialValue;
        return result - initialValue;
    };
}

// 测试
const myFunction = outerFunction(5);
console.log(myFunction()); // 输出5
console.log(myFunction()); // 输出10
console.log(myFunction()); // 输出15