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

yizhihongxing

浅谈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日

相关文章

  • JS截取与分割字符串常用技巧总结

    下面是 JS 截取与分割字符串常用技巧总结的完整攻略。 一、截取字符串 1. 截取固定长度的字符串 使用 String 对象的 substring() 方法可以截取字符串的一部分。它需要两个参数,即要截取的子字符串的起始位置和结束位置(不包括结束位置的字符)。如果只传入一个参数,那么就从该位置开始截取到字符串的末尾。 例如,要从字符串 “Hello, wor…

    JavaScript 2023年5月28日
    00
  • 深入理解react-router 路由的实现原理

    下面是深入理解react-router路由的实现原理的攻略。 1. 路由的概念 路由是指通过URL来定位到特定的页面并展示给用户的过程。在前端 SPA(单页应用)中,我们通常使用第三方库来实现路由功能,其中react-router是使用较为广泛的一种。 2. react-router的实现原理 首先,我们需要了解react-router的实现原理是基于his…

    JavaScript 2023年6月11日
    00
  • 详解JavaScript时间格式化

    详解JavaScript时间格式化 什么是时间格式化 在编写前端代码中,经常需要将时间进行格式化展示。时间格式化可以把人类可读的时间转换成计算机可读的时间,或将计算机可读的时间转换成人类可读的时间格式。实现时间格式化可以让用户更易于理解,也方便程序后续处理。 JavaScript的Date对象 JavaScript内置了Date对象来处理日期与时间。Date…

    JavaScript 2023年6月10日
    00
  • javascript之Partial Application学习

    JavaScript之Partial Application学习 在JavaScript中,我们经常需要使用函数来处理数据。在函数式编程中,函数通常被看作是一种“一等公民”,也就是说,函数可以像其他数据类型一样被传递、存储和操作。Partial Application是函数式编程中很重要的概念之一,本篇攻略将全面介绍Partial Application的相…

    JavaScript 2023年5月28日
    00
  • 利用JavaScript实现放鞭炮动画效果

    下面我将详细讲解如何利用 JavaScript 实现放鞭炮动画效果。 准备工作 在开始之前,我们需要准备以下工作:- HTML 页面结构- CSS 样式表- 放鞭炮动画所需的图片资源- JavaScript 代码 实现步骤 创建 HTML 页面结构,并在页面中引入 CSS 样式表和 JavaScript 代码。 <!DOCTYPE html> &…

    JavaScript 2023年6月10日
    00
  • 关于JavaScript中事件绑定的方法总结

    针对关于JavaScript中事件绑定的方法总结,我将提供如下完整攻略: 一、什么是事件绑定 在JavaScript中,事件绑定是指将一个特定的JavaScript函数与某个HTML元素的特定事件联系起来的过程。当该事件在该元素上触发时,相应的JavaScript函数将被调用。事件绑定常用于网页交互中,比如点击按钮、拖拽事件等。 二、如何进行事件绑定 常用的…

    JavaScript 2023年6月11日
    00
  • JS获取各种浏览器窗口大小的方法

    获取浏览器窗口大小是前端开发中常用的操作,可以用来实现响应式布局、动态调整元素大小位置等功能。以下是JS获取各种浏览器窗口大小的方法的攻略: 1. window对象的innerWidth和innerHeight属性 在JS中,可以使用window对象的innerWidth和innerHeight属性,获取当前浏览器窗口的内部宽度和高度,即不包括浏览器的边框和…

    JavaScript 2023年6月11日
    00
  • JavaScript 截取字符串代码实例

    下面是“JavaScript 截取字符串代码实例”的完整攻略。 什么是字符串截取? 在编程中,字符串截取是指在一个字符串中截取一段指定长度的字符或某一范围内的字符。在 JavaScript 中,通过截取字符串可以获取到需要使用的部分内容,这在字符串处理中是很常见的操作。 JavaScript 截取字符串的方法 JavaScript 提供了几种截取字符串的方法…

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