什么是es6闭包吗(es6闭包语法介绍)

2024年06月25日 建站教程

什么是es6闭包吗,es6闭包语法怎么运用,下面web建站小编给大家简单介绍一下!

什么是es6闭包吗

在es6中,闭包(closure)指有权访问另一个函数作用域中变量的函数。简单理解:一个作用域可以访问另外一个函数内部的局部变量。

闭包:在一个函数内部创建另一个函数,把内嵌的函数称为闭包,它可以访问外部函数的局部变量

闭包的主要作用:延伸了变量的作用范围。

es6闭包语法介绍

通过闭包实现迭代

let arr = ['vue','jquery','css3']
function fn(temp){ //外部函数的返回值是闭包
  let i = 0
  //定义闭包:迭代获取数组元素并返回
  return function(){
    return temp[i++] || '数组已经遍历结束'
  }
}

let f1 = fn(arr)
console.log(f1()) //vue
console.log(f1()) //jquery
console.log(f1()) //css3
console.log(f1()) //数组已经遍历结束

将闭包封装到对象中

function fun(){
  let name = 'web建站'
  setName = function(na){ //setName是闭包,用来设置外部函数的变量值
    name = na
  }
  getName = function(){ //getName是闭包,用来返回外部函数的变量值
    return name 
  }
  
  //外部fun函数的返回值,将闭包封装到对象中返回
  return {
    setUserName:setName,
    getUserName:getName
  }
}
let obj =fun() //将fun函数返回值(对象)赋给obj
console.log('用户名:',obj.getUserName()) //web建站
obj.setUserName('学习vue')
console.log('用户名:',obj.getUserName()) //学习vue

本文链接:http://so.lmcjl.com/news/7251/

展开阅读全文
相关内容