前言:锻炼自己的思想,规范自己的编程思路。
问题:
请你写一个函数 createCounter. 这个函数接收一个初始的整数值 init 并返回一个包含三个函数的对象。
这三个函数是:
increment() 将当前值加 1 并返回。 decrement() 将当前值减 1 并返回。 reset() 将当前值设置为 init 并返回。
示例:(放代码里面)
输入:init = 5, calls = ["increment","reset","decrement"]
输出:[6,5,4]
解释:
const counter = createCounter(5);
counter.increment(); // 6
counter.reset(); // 5
counter.decrement(); // 4
思路:
函数名为 createCounter,它接受一个初始整数值 init,并返回一个包含三个函数的对象。
先声明了一个局部变量 currentValue 来存储当前值,并将其初始值设置为 init。然后,它返回一个包含三个函数的对象:increment、decrement 和 reset。
increment 函数将 currentValue 的值加 1 并返回。decrement 函数将currentValue 的值减 1 并返回。reset 函数将 currentValue 的值设置为 init 并返回。
这个函数的目的是创建一个计数器,可以递增、递减和重置当前值。
基于上述思考,代码如下:
function createCounter(init) {
let currentValue = init;
return {
increment: function() {
currentValue += 1;
return currentValue;
},
decrement: function() {
currentValue -= 1;
return currentValue;
},
reset: function() {
currentValue = init;
return currentValue;
}
};
}
执行结果如下图:
学到的知识点:
1.在 JavaScript 中,可以使用对象字面量语法来创建一个包含多个函数的对象。对象字面量是一种简洁的语法,用于定义具有多个属性和方法的对象。
2.在 JavaScript 中,可以在函数内部定义并使用其他函数。这些内部定义的函数称为嵌套函数或局部函数。
嵌套函数可以访问其外部函数中定义的变量和参数。这种能力使嵌套函数成为封装和组织代码的强大工具。
3.闭包是 JavaScript 中一种强大的特性,它允许函数访问并操作其外部作用域中的变量。当一个函数嵌套在另一个函数中时,嵌套函数可以访问其外部函数中定义的变量和参数。这种能力使嵌套函数成为封装和组织代码的强大工具。