JavaScript高级程序设计(第3版)学习笔记9 js函数(下)

yizhihongxing

《JavaScript高级程序设计(第3版)学习笔记9 js函数(下)》一文主要讲解了 JavaScript 中函数的进阶应用,包括函数作为对象、闭包、函数自执行等内容,下面是具体的攻略:

1. 函数作为对象

在 JavaScript 中,函数同时也是对象,因此它们可以拥有属性和方法。函数的属性通常是直接在函数对象上定义,而方法则是定义在函数的原型对象上。

例如,在一个自定义的函数对象上定义属性和方法的示例代码如下:

// 定义一个自定义函数对象 MyFunction
function MyFunction() {}

// 在 MyFunction 上定义一个属性
MyFunction.myProperty = "Hello World!";

// 在 MyFunction.prototype 上定义一个方法
MyFunction.prototype.myMethod = function() {
  console.log(this.myProperty);
};

// 创建 MyFunction 的实例并调用 myMethod 方法
var myFuncObj = new MyFunction();
myFuncObj.myMethod(); // 输出 "Hello World!"

2. 闭包

闭包是指在一个函数内部创建另一个函数,并且内部函数可以访问外部函数的变量。这种特性使得闭包在实践中非常有用,因为它可以用来创建私有变量、分时函数等。

一个简单的闭包示例代码如下:

function createCounter() {
  var counter = 0;
  return function () {
    return ++counter;
  };
}

// 创建一个计数器并调用它的方法
var myCounter1 = createCounter();
console.log(myCounter1()); // 输出 1
console.log(myCounter1()); // 输出 2

// 创建另一个计数器并调用它的方法
var myCounter2 = createCounter();
console.log(myCounter2()); // 输出 1
console.log(myCounter2()); // 输出 2

这里的 createCounter() 函数返回了一个匿名函数,并且这个匿名函数可以访问 createCounter() 函数中的 counter 变量,因此每次调用匿名函数时都会使 counter 变量的值加 1。

3. 函数自执行

函数自执行是指在定义函数的同时立即调用它。这种技巧可以用来创建一些只需要一次性运行而不需要再次调用的代码块,例如:

(function () {
  // 在这里定义一些只需要一次性运行的代码
  console.log("Hello World!");
})();

这里的 (function () { ... })() 是一个函数自执行表达式,在定义函数的同时立即调用它。由于这个函数只需要运行一次,因此在定义它的时候就直接调用了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript高级程序设计(第3版)学习笔记9 js函数(下) - Python技术站

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

相关文章

  • php 正确解码javascript中通过escape编码后的字符

    当我们在 JavaScript 中使用 escape() 方法对字符串进行编码后,该字符串会转换为一系列 URL 安全字符编码。而在 PHP 中,我们需要将这些 URL 安全字符编码解码为原始字符。本文将详细讲解如何正确解码 JavaScript 中通过 escape 编码后的字符。 使用 PHP 的 urldecode() 方法解码 PHP 有一个内置的 …

    JavaScript 2023年5月19日
    00
  • ES6(ECMAScript 6)新特性之模板字符串用法分析

    ES6(ECMAScript 6)新特性之模板字符串用法分析 1. 模板字符串的概念 模板字符串是ES6(ECMAScript 6)中的一项新特性,用来处理复杂的字符串拼接操作。它使用反引号字符 (`) 来表示字符串,可以直接在字符串中插入变量和表达式。 2. 模板字符串的基本用法 2.1 普通字符串的拼接 在使用模板字符串之前,我们可以先来了解一下普通字符…

    JavaScript 2023年5月28日
    00
  • JS数组(Array)处理函数整理

    JS数组(Array)处理函数整理 在JavaScript中,数组(Array)是非常常见且重要的数据类型。它可以用来存储一组有序的数据,方便数据的访问以及数据的操作。本文将对常用的JS数组处理函数进行整理,并给出一些示例说明。 forEach() forEach()方法是一个数组的遍历方法,可以用来依次访问数组中的元素,并对每一个元素执行给定的操作。用法如…

    JavaScript 2023年5月27日
    00
  • JS获取时间的相关函数及时间戳与时间日期之间的转换

    获取时间的相关函数及时间戳与时间日期之间的转换 在JavaScript中,获取时间的方法非常多,包括获取时间戳、获取当前日期时间等。下面我们来依次介绍这些函数。 1.获取时间戳: 时间戳指的是距离1970年1月1日0时0分0秒(UTC时间)的时间差,单位为毫秒。获取时间戳有两种方式: (1) Date.now() 函数 这个函数返回当前时间的时间戳,它等价于…

    JavaScript 2023年5月27日
    00
  • javascript数组去重的方法汇总

    针对“javascript数组去重的方法汇总”的话题,我将为您提供完整的攻略,并给出两条示例说明。 一、问题背景 在javascript开发中,很常见的问题是如何从一个数组中找出不重复的数据。数组去重在实际开发中非常有用,例如:从数据库中查询数据后想要去除相同项展示给用户,或者需要合并两个数组并去除重复项。本文将为大家总结一下常用的去重方法。 二、方法汇总 …

    JavaScript 2023年5月27日
    00
  • 详解React中的this指向

    当使用React构建应用程序时,使用this来引用组件实例中的属性和方法可能会变得稍微复杂。在React组件中,this的值可能是 null、 undefined 或指向其他对象。这可能会导致执行时错误或行为不一致的情况出现。 为什么this指向会变化? React组件的 this 值会受到许多因素的影响,主要有以下原因: 在类方法中,this 默认指向组件…

    JavaScript 2023年6月10日
    00
  • javascript demo 基本技巧

    首先,我们要了解何谓 JavaScript Demo,这其实是一种基于 JavaScript 语言开发的小型互动演示,它可以运行在浏览器端或 Node.js 等环境中,用于展示和演示某项特定功能或效果。 下面,我将分享一些 JavaScript Demo 开发的基本技巧,帮助大家更好地开发出功能强大且易维护的演示程序。 好的 JavaScript Demo …

    JavaScript 2023年5月27日
    00
  • javascript如何创建表格(javascript绘制表格的二种方法)

    关于“javascript如何创建表格(javascript绘制表格的二种方法)”的完整攻略,我会给你细致的讲解。这里介绍两种方法。 方法一:使用HTML table元素 在HTML中,table元素可以用来创建和显示表格的基本结构。可以在table标签内使用tr元素定义表格的各行,并在每个tr元素中使用td或th元素定义单元格。 JavaScript代码可…

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