JavaScript高级程序设计 读书笔记之八 Function类及闭包

yizhihongxing

JavaScript高级程序设计 读书笔记之八 Function类及闭包

  • Function类
  • Function类的特点
    • Function类本身也是一个函数,它可以像工厂函数一样构建新的函数实例。
    • 使用Function构造函数构建函数,可以动态地创建函数语句。
    • 可以将字符串形式的代码,通过Function的形式执行。
  • Function构造函数的使用
    • Function构造函数创建函数的形式:new Function(arg1, arg2, ... argN, functionBody)
    • arg1~argN:形式参数。
    • functionBody:字符串形式的函数体。
    • 示例:
      javascript
      // 使用Function构造函数创建函数
      var add = new Function('arg1', 'arg2', 'return arg1 + arg2;');
      console.log(add(1, 2)); // 输出3
  • 闭包
  • 闭包的概念
    • 闭包:一个可以访问自由变量的函数。
    • 自由变量:在一个函数中使用、但既不是函数参数也不是函数内部定义的变量。
  • 闭包的作用

    • 在需要多次访问某个变量时,使用闭包可以避免将该变量作为全局变量。
    • 创建私有变量。
    • 避免变量污染。
    • 示例:
      ```javascript
      // 使用闭包创建计数器函数
      var counter = (function() {
      var privateCounter = 0;
      function changeBy(val) {
      privateCounter += val;
      }
      return {
      increment: function() {
      changeBy(1);
      },
      decrement: function() {
      changeBy(-1);
      },
      value: function() {
      return privateCounter;
      }
      };
      })();

    console.log(counter.value()); // 输出 0

    counter.increment();

    console.log(counter.value()); // 输出 1

    counter.decrement();

    console.log(counter.value()); // 输出 0
    ```

以上就是《JavaScript高级程序设计》中关于Function类及闭包的笔记攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript高级程序设计 读书笔记之八 Function类及闭包 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • 获取URL地址中的文件名和参数的javascript代码

    获取URL地址中的文件名和参数是前端开发中常见的需求,通过Javascript代码可以轻松实现此操作。下面是一份完整的攻略。 步骤一:获取URL地址 首先需要获取当前页面的URL地址,可以使用Javascript中window对象的location属性来实现,代码如下: var currentUrl = window.location.href; 此处的cu…

    JavaScript 2023年5月27日
    00
  • 推荐自用 Javascript 缩图函数 (onDOMLoaded)……

    推荐自用 Javascript 缩图函数 (onDOMLoaded) 完整攻略 简介 本文介绍如何使用自制的Javascript缩图函数,在网页加载完成时动态生成缩略图并缓存到浏览器。这个缩图函数可以实现对任何图片的缩放和加载加速,用户能够更快地预览高清图片,同时亦可以节省流量和加载时间。 准备工作 在开始之前,您需要了解一些前置知识: HTML, CSS和…

    JavaScript 2023年6月10日
    00
  • php cookie用户登录的详解及实例代码

    现在我来给您详细讲解“php cookie用户登录的详解及实例代码”的完整攻略。 概述 在网站开发中,登录是一个非常重要的功能。其中,保存用户登录状态的方式有多种,其中之一就是通过使用cookie来保存用户信息。本文将通过示例代码,详细讲解如何使用php cookie来实现用户登录。 实现步骤 步骤一:创建登录页面 首先,我们需要在HTML中创建一个登录页面…

    JavaScript 2023年6月11日
    00
  • Javascript类型转换的规则实例解析

    标题:Javascript类型转换的规则实例解析 JavaScript类型转换 在JavaScript中,类型转换是非常常见的操作,在进行类型转换时可能会涉及自动类型转换和强制类型转换两种方式。 自动类型转换 自动类型转换是JavaScript中的一种默认行为,在运行代码时,如果需要把一个数据类型赋值给另外一个数据类型时,JavaScript会自动进行类型转…

    JavaScript 2023年5月20日
    00
  • JavaScript调试方法

    JavaScript调试是每个JavaScript开发人员必须掌握的技能。在开发过程中,您可能会遇到各种问题,例如代码错误、内存泄漏、不平衡的负载等。调试是一种解决这些问题的方法,它可以帮助您找到并修复程序中的错误。 以下是JavaScript调试的完整攻略: 1.使用控制台 控制台是JavaScript调试中最有用的工具之一。您可以使用控制台来查看变量的值…

    Web开发基础 2023年3月30日
    00
  • JavaScript与DOM组合动态创建表格实例

    下面我来详细讲解如何使用JavaScript与DOM组合动态创建表格实例。 简介 在Web开发中,表格是数据展示的常用形式之一,但是在页面中手动编写表格代码比较繁琐,因此我们可以使用JavaScript与DOM结合创建表格。 创建表格的步骤 1.创建表格元素 首先需要使用JavaScript创建表格元素,可以使用document.createElement方…

    JavaScript 2023年6月10日
    00
  • JavaScript实现Sleep函数的代码

    我来为你讲解“JavaScript实现Sleep函数的代码”的攻略。 首先需要注意的是,JavaScript是单线程的语言,当执行了某个代码块时,即使后续还有其他代码块也会等待。因此,为了模拟延迟操作,我们需要使用异步代码。 下面给出两种实现“Sleep函数”的方法: 方法一:使用Promise 创建一个函数,在函数内部返回一个Promise实例。 func…

    JavaScript 2023年5月27日
    00
  • 送你43道JS面试题(收藏)

    下面我将详细讲解“送你43道JS面试题(收藏)”的完整攻略。 简介 该攻略是作者搜集并整理的 43 道 JS 面试题,旨在帮助 JS 开发者更好地准备面试。这 43 道面试题涵盖了 JS 的各个方面,包括变量、类型、函数、原型、闭包、异步等等内容。如果你能够顺利地回答这些问题,那么你的 JS 基础将会非常扎实。 使用方法 首先,你需要下载压缩包并解压。 进入…

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