zoukankan      html  css  js  c++  java
  • 6-JavaScript 闭包(1)

    JavaScript闭包(一)


    闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。

    官方”的解释是:闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。

    一.变量的作用域

    要理解闭包,首先要理解JavaScript特殊的变量作用域。

    变量的作用域无非就是两种:全局变量和局部变量。JavaScript语言的特殊之处:在函数内部可以读取全局变量,在函数外部自然无法访问局部变量。

    注:声明变量时要使用 var 关键字,如果不用的话,实际是声明了一个全局变量(自由变量)。

    二.闭包的引出:

    下面的一个例子:

    想要获得的效果是:点击p标签时,第一个弹出1,第二个弹出2,第三个弹出3.

    结果:点击p标签都弹出3.

    解决:

    这就用到闭包的了,闭包可以简单的理解为能够读取其他函数内部变量的函数。

    由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成“定义在一个函数内部的函数”。所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。

    方案一:匿名函数的自调用

    解决二:内部函数

    方案三:外部函数

  • 相关阅读:
    HTML-标题
    HTML-属性
    HTML-元素
    前端 vue Request Payload VS Form Data
    JWT,Session、Cookie(httpOnly,secure) 登录认证
    js 定位当前城市(ip,省份,城市,邮编)接口定位(搜狐、新浪、百度、腾讯API)
    sqlsugar 使用汇总
    asp.net 跨域
    asp.net core程序发布(Webapi,web网站)
    .net 多线程发展1.0--4.0
  • 原文地址:https://www.cnblogs.com/kingmin/p/6925498.html
Copyright © 2011-2022 走看看