关键词

浅谈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元素,将按钮颜色设置为红色。

本文链接:http://task.lmcjl.com/news/11818.html

展开阅读全文