浅谈JS封闭函数、闭包、内置对象

浅谈JS封闭函数、闭包、内置对象

JS封闭函数

JS的封闭函数,又称为IIFE(Immediately-Invoked Function Expression),是指定义一个匿名函数并立即执行该函数的语法结构。

封闭函数的特点:

  • 定义一个函数,并立即自动调用该函数;
  • 可以在全局作用域或另一个函数内部作用域中定义,从而实现封装变量和方法;
  • 封闭函数的返回值可以被外部调用使用。

封闭函数的代码示例:

(function() {
  var name = "John";

  console.log("My name is " + name + ".");
})();

以上代码定义了一个匿名函数,并立即执行。该函数内定义了一个name变量,可以在函数外部访问该变量的值。

JS闭包

闭包是指函数与其相关的变量构成的整体。闭包特性可以将函数内部的变量和方法封装私有化,同时又能让外部通过特定方式访问到其中的数据和方法。

闭包的基本概念:

  • 闭包就是内部函数和外部函数之间的环境;
  • 内部函数可以访问外部函数的参数和变量;
  • 外部函数的返回值可以是内部函数的引用或者通过调用内部函数的方式进行返回。

闭包的代码示例:

function outer() {
  var name = "John";

  function inner() {
    console.log("My name is " + name + ".");
  }

  return inner;
}

var foo = outer();
foo(); // 输出 “My name is John.”

以上代码中,outer函数内部定义了一个inner函数。outer函数返回inner函数的引用,并将其赋值给变量foo。之后,调用foo函数,即相当于调用inner函数并输出结果。

JS内置对象

JS的内置对象是指在语言标准中预定义的对象,直接可以使用而无需定义。JS的内置对象可以分为以下几类:

  • 基本数据类型对象(String、Number、Boolean、Date等);
  • 系统对象(Math、JSON等);
  • HTML DOM对象(document、location、element、style等);
  • BOM对象(window、history、navigator等)。

内置对象的代码示例:

var str = new String("Hello, world.");

console.log(str.toUpperCase()); // 输出 “HELLO, WORLD.”

console.log(Math.PI); // 输出 3.141592653589793

var btn = document.getElementById("btn");
btn.style.color = "red"; // 将按钮颜色设置为红色

以上代码创建一个字符串对象,将字符串转化为大写并打印,输出结果为 "HELLO, WORLD.";使用Math对象获取圆周率PI的值;通过getElementById获取一个DOM元素,将按钮颜色设置为红色。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈JS封闭函数、闭包、内置对象 - Python技术站

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

相关文章

  • 微信小程序 倒计时组件实现代码

    下面就来分享微信小程序中倒计时组件的实现过程吧。 准备工作 在开始具体讲解之前,需要对微信小程序的基础知识有一定的了解,包括:- 小程序的目录结构- WXML、WXSS、JS、JSON 文件的作用- 小程序的基础组件和事件绑定等操作 倒计时组件实现步骤 1. 创建小程序项目 首先,在微信开发者工具中创建一个基础的小程序项目。 2. 创建倒计时组件 在项目中创…

    JavaScript 2023年6月11日
    00
  • js中arguments的用法(实例讲解)

    当在JavaScript中定义函数时,我们不需要指定参数的类型或个数。函数的参数都被存储在一个名为 arguments 的特殊变量中。arguments 变量是一个类似数组(但不是真正的数组),可以使用数组下标来访问其中的参数。下面我将向您讲解如何使用 arguments 变量进行函数参数的访问和操作,并提供一些实例让您更好的理解。 访问函数中的参数 当您在…

    JavaScript 2023年6月10日
    00
  • ASP.NET GridView中加入RadioButton不能单选的解决方案

    首先介绍一下问题的情况:ASP.NET GridView中加入RadioButton后,出现了无法单选的情况。这个问题可能是由于没有设置RadioButton的GroupName属性或者设置了错误的Group名字导致的。下面是解决方案的完整攻略: 1. 确认RadioButton的GroupName属性设置 在ASP.NET GridView中,每个Radi…

    JavaScript 2023年6月11日
    00
  • javascript键盘事件全面控制脚本代码

    下面我将为您详细讲解“JavaScript键盘事件全面控制脚本代码”的完整攻略。 简介 JavaScript键盘事件指被触发时相关动作可以被监听的事件,可以对用户在键盘上输入的所有数据进行监听和控制,从而实现对脚本代码的全面控制。 详细说明如下: 键盘事件类型 JavaScript键盘事件常用的事件类型包括: keydown:按下键盘上的任意键时触发。 ke…

    JavaScript 2023年6月11日
    00
  • javascript设计模式 – 解释器模式原理与用法实例分析

    JavaScript设计模式 – 解释器模式原理与用法实例分析 解释器模式概述 解释器模式是一种行为型模式,它定义了一种语言语法,并实现了该语言的解释器。通过解析表达式来实现对语言的操作。 在JavaScript中,这个解释器就是一个函数,接收一个字符串表达式作为参数,并返回解析后的结果。 解释器模式适用于处理特定的语法规则和行为,并且针对方案的性能要求不高…

    JavaScript 2023年5月28日
    00
  • 一文掌握new Date() 方法

    下面我为您详细讲解如何使用 new Date() 方法。 1. new Date() 方法简介 new Date() 方法用于创建一个表示当前日期和时间的 Date 对象。该方法创建的对象包含当前日期和时间的值。您可以使用它来获取当前时间、计算时间间隔等操作。 2. new Date() 方法使用 new Date() 方法没有参数时会创建一个代表当前时间的…

    JavaScript 2023年6月10日
    00
  • JavaScript遍历对象的七种方法汇总

    当我们需要操作 JavaScript 对象的属性时,遍历对象是非常必要的。本文总结了JavaScript遍历对象的七种方法。下面进行详细讲解: 方法一:for…in 使用 for…in 循环对象的属性。 const person = { name: ‘John’, age: 30, gender: ‘male’ } for (let property…

    JavaScript 2023年5月27日
    00
  • 什么是JavaScript注入攻击?

    JavaScript注入攻击是指攻击者通过篡改网页中的JavaScript代码,向网站注入恶意的JavaScript语句,从而实现对网站的攻击行为。此种攻击手段常被黑客用于窃取、篡改或者删除网站中的个人信息、交易记录等敏感信息。 攻击者通过JavaScript注入攻击,可以在用户访问受攻击网站时,进行一下常见的攻击行为: 劫持网站表单:攻击者通过JavaSc…

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