js之闭包

xiaoxiao2025-06-05  47

闭包

定义

闭包就是能够读取其他函数内部变量的函数; *闭包是指有权访问另一个函数作用域中变量的函数。创建一个闭包的最常 见的方法就是在一个函数内部创建另一个函数,通过另一个函数访问这个 函数的局部变量,利用可以突破作用域链*。

闭包的特性

- 函数内部嵌套函数 - 内部函数可以引用外部函数的参数和变量 - 参数和变量不会被垃圾回收机制收回

闭包的优缺点

- [ ] ##优点:可以创建私有的变量和方法,避免全局变量的污染 - [ ] ## 缺点:不正当的使用会消耗内存,导致内存的泄露

eg:以下内容借鉴廖雪峰老师官网内容廖雪峰老师官网

高阶函数:(把函数作为参数传入,这样的函数称为高阶函数);高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。function sum(arr) { return arr.reduce(function (x, y) { return x + y; }); } sum([1, 2, 3, 4, 5]); // 15

如果上面的函数不是立刻就和,而是返回就和的函数

function lay_sum(arr){ var sum = function(){ return arr.reduce(function (x, y) { return x + y; }); } return sum; } var fn = lay_sum([1,2,3,4,5]); console.log(fn); //ƒ () { // return arr.reduce(function (x, y) { // return x + y; //}); // } fn();//15
转载请注明原文地址: https://www.6miu.com/read-5031329.html

最新回复(0)