let counter = 0; // 初始化计数器 function resetCounter() { counter = 0; // 重置计数器 } // 调用函数重置计数器 resetCounter(); 使用类:使用JavaScript的类来实现计数器,并在需要重置计数器时调用类的方法。 代码语言:txt 复制 class Counter { constructor() { thi
let counter = (function(){ let initValue = 0 return function(){ initValue++; return initValue } })() 这个计数器函数每次执行结果都不同,因此它不是一个纯函数。 例子3: let femaleCounter = 0; let maleCounter = 0; function isMale(user){ if(user.sex = 'man'){ maleCounter++; return ...
log(count); }, decrement: function() { count--; console.log(count); } }; } let counter = createCounter(); counter.increment(); // 输出:1 counter.increment(); // 输出:2 counter.decrement(); // 输出:1 在这个例子中,createCounter函数返回了一个对象,该对象包含两个方法:increment和decr...
functioncounter(){ letinitialValue =0; // 这是一个全局函数 add= function () { initialValue +=1; }; functionshow(){ console.log(initialValue); } returnshow; } letCounter = counter(); Counter();// 0 add(); Counter();// 1 Counter();// 1 add(); Counter();// 1 由此可知,initia...
function createCounter() { let count = 0; return { get [`countValue`]() { return count; }, increment() { count++; } }; } let counter = createCounter(); counter.increment(); console.log(counter.countValue); // 输出: 1 在这个例子中,我们定义了一个countValue的计算属性,它是一个gett...
// 全局作用域leta =1letb =2// 局部作用域functionf() {letc// 局部作用域functiong() {letd ='yo'} } 函数内部允许创建新的函数,f函数内部创建的新函数g,会产生新的函数作用域,由此可知作用域产生了嵌套的关系。 如下图所示,父子关系的作用域关联在一起形成了链状的结构,作用域链的名字也由此而来。
// 获取页面元素constcountElement=document.getElementById('count');constincrementBtn=document.getElementById('incrementBtn');// 初始化计数值letcount=0;// 定义增加计数的函数functionincrementCount(){count++;countElement.textContent=count;}// 添加点击事件监听器incrementBtn.addEventListener('click',increment...
// 非纯函数letcounter =0functionincrement(){// 引用了外部变量returncounter++ }// 纯函数constincrement =(counter) =>counter +1 2.2 数据不可变 纯函数不修改全局变量,不修改入参,不修改对象,当需要修改一个对象时,应该创建一个新的对象用来修改,而不是修改已有的对象。
functionmakeCounter() {letcount =0;returnfunction() {return++count; };}constcounter =makeCounter();console.log(counter());// 1console.log(counter());// 2 现实:如果没有闭包,我们就会像 1995 年那样,陷入状态传递的泥潭。 3. Promi...
+function () {}(); //作用与ES6当中的let是一样的,只不过用这个语法是为了解决个别浏览器的兼容问题。 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. JS 质量的重点难点: 立即执行函数:又叫自执行函数,定义即执行 立即执行函数(Immediately Invoked Function Expression)即(1)定义一个匿...