javascript的闭包介绍(司徒正美)

yizhihongxing

下面是详细讲解“javascript的闭包介绍(司徒正美)”的完整攻略:

什么是闭包

闭包是指:有权访问另一个函数作用域中变量的函数。

简单来说,闭包就是能够读取其他函数内部变量的函数。

闭包的构成

闭包有“引用环境”和“函数”两部分组成。

其中,引用环境指的是一个对象,它包含了所有在函数创建时可访问的局部变量。而函数,则是这个引用环境中的一个闭包函数。

闭包的作用

闭包的作用有很多,以下是其中的几个:

  • 实现公有变量
  • 做缓存
  • 实现封装和面向对象编程
  • 实现柯里化

实现闭包的方式

实现闭包的方式有以下两种:

  • 函数内返回函数

```js
function outer() {
var a = 10;
return function inner() {
console.log(a);
}
}

var innerFn = outer();
innerFn();
```

  • 函数内手动创建引用环境

```js
function outer() {
var a = 10;
return {
getA: function() {
return a;
},
setA: function(value) {
a = value;
}
}
}

var obj = outer();
console.log(obj.getA()); // 10
obj.setA(20);
console.log(obj.getA()); // 20
```

以上就是“javascript的闭包介绍(司徒正美)”的完整攻略。通过学习闭包的概念、构成、作用和实现方式,我们能够更好地理解JavaScript中的高级概念,也能更加熟练地使用闭包进行编程。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript的闭包介绍(司徒正美) - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • JavaScript基础之AJAX简单的小demo

    当创建Web应用程序时,需要异步处理与服务器的交互。这就是为什么Ajax对于现代Web开发至关重要。在这个简单的AJAX小demo中,我们将通过一个实际的例子学习AJAX。 1. AJAX的基本知识 AJAX全称“异步JavaScript和XML”,是一种创建快速动态Web内容的技术。通过AJAX,Web应用程序可以在不重新加载页面的情况下向Web服务器发送…

    JavaScript 2023年5月28日
    00
  • JavaScript实现时间范围效果

    实现时间范围效果可以帮助用户快速选择日期,常用于预定、筛选等场景。下面是实现时间范围效果的完整攻略,让我们逐步来实现。 第一步:引入依赖 我们需要引入一个 JavaScript 的日期选择器库。其中,moment.js 是一个自动解析、验证、操作和显示日期和时间的库,非常常用且功能强大。 <!– 引入moment.js和相关的CSS样式表文件 –&…

    JavaScript 2023年5月27日
    00
  • JavaScript进阶教程(第一课)第2/3页

    接下来我将详细讲解“JavaScript进阶教程(第一课)第2/3页”的完整攻略。 概述 本教程旨在帮助读者提升JavaScript编程技能,涵盖了Javascript的基础知识和进阶知识。本教程包含多个章节,前面几个章节将介绍Javascript的基础内容,而后面的章节将会深入介绍Javascript的优化和进阶知识,包括如何使用高级Javascript技…

    JavaScript 2023年5月17日
    00
  • JavaScript中callee和caller的区别与用法实例分析

    JavaScript中callee和caller都是函数对象的属性,它们可以完成一些特殊的功能。但是,它们的使用需要注意一些细节。接下来,我将为大家详细讲解callee和caller的区别和用法,并提供实例说明。 callee和caller的区别 callee是一个指向当前函数对象的指针,在函数内部可以使用arguments.callee来调用当前函数对象自…

    JavaScript 2023年6月10日
    00
  • 删除Javascript Object中间的key

    删除Javascript对象中的key,在实际开发中经常会用到,本文将详细讲解如何通过Javascript代码来实现删除Javascript对象中间的key的攻略。下面将分步骤的介绍如何实现。 第一步:了解Javascript对象 在开始操作Javascript对象之前,我们需要先了解Javascript对象。Javascript对象是一种键值对存储数据的方…

    JavaScript 2023年5月28日
    00
  • Javascript 面向对象 对象(Object)

    下面是 Javascript 面向对象 对象(Object)的完整攻略: 理解概念 JavaScript 的面向对象和其他语言很相似,都是基于类和实例的概念。但是 JavaScript 中没有类,而是通过对象来实现面向对象编程。 对象可以看作是一个属性的集合,每个属性都是由键值对(key-value pair)组成,键名是字符串,键值可以是任意的 JavaS…

    JavaScript 2023年5月27日
    00
  • JS获取今天是本月第几周、本月共几周、本月有多少天、是今年的第几周、是今年的第几天的示例代码

    获取本月第几周、本月共几周、本月有多少天 首先,我们可以使用Date对象来获取当天的日期。通过获取当前日期的月份和年份,可以计算出本月有多少天。同时,我们可以使用getDay()方法来获取当前日期是星期几,然后在计算出本月的第几周以及本月共几周。 下面是获取本月第几周、本月共几周和本月有多少天的示例代码: // 获取当前日期 const date = new…

    JavaScript 2023年6月10日
    00
  • 详解操作cookie的原生方法cookieStore

    下面是详解操作cookie的原生方法cookieStore的完整攻略。 一、什么是cookieStore cookieStore 是浏览器 JavaScript 运行时的一个 API,用来管理浏览器中所有的 cookie,可用于对 cookie 实现增删改查等操作。 二、cookieStore的基本使用方法 cookieStore API 可以使用在浏览器中…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部