JavaScript进阶(三)---声明函数、调用函数、匿名函数、箭头函数、构造函数,自执行函数

news2024/9/23 13:25:55

目录

1. 声明函数:

2. 调用函数

3. 匿名函数

4. 箭头函数

箭头函数this使用案例:

5. 构造函数

构造函数的特点:

构造函数与普通函数的区别:

注意事项:

6.自执行函数


JavaScript是一种广泛使用的编程语言,特别是在Web开发中。以下是一些JavaScript中常见的函数类型及其用法:

1. 声明函数:

声明函数是使用`function`关键字定义的函数。它需要一个函数名和一对圆括号,括号内可以包含参数列表。

   function functionName(parameters) {
       // 函数体
   }
   

2. 调用函数

调用函数是执行函数的过程。使用函数名后跟一对圆括号来调用函数,如果有参数,需要在括号内传递。


   functionName(argument1, argument2);

3. 匿名函数

匿名函数是没有名称的函数。它们通常用于立即执行或作为参数传递给其他函数。


   var anonymousFunction = function(parameters) {
       // 函数体
   };
   anonymousFunction();

4. 箭头函数

箭头函数是ES6引入的一种更简洁的函数表达式。它们使用`=>`语法,并且通常用于简短的函数。

 const arrowFunction = (parameters) => {
       // 函数体
   };
   // 或者更简洁的单行表达式
   const arrowFunction = (parameters) => expression;

箭头函数this使用案例:

5. 构造函数

构造函数是一种特殊的函数,用于创建对象。它通常以大写字母开头,并且使用`new`关键字来调用。

  function ConstructorFunction(parameters) {
       this.property = value;
       // 函数体
   }
   var instance = new ConstructorFunction(arguments);

在JavaScript中,构造函数是一种特殊的函数,用于创建和初始化对象。构造函数通常使用new关键字来调用,并且它们可以包含属性和方法,这些属性和方法会被传递给由构造函数创建的每个实例。

构造函数的基本语法如下:

function ConstructorFunction(param1, param2) {
  // 属性和方法
  this.property1 = param1;
  this.property2 = param2;

  // 构造函数体中的代码
  console.log('构造函数被调用!');
}

以下是如何使用构造函数创建对象的示例:

var myObject = new ConstructorFunction('value1', 'value2');

构造函数的特点:

  1. 使用new关键字调用: 构造函数必须使用new关键字来调用,否则this将不会指向新对象,而是全局对象(在非严格模式下)或undefined(在严格模式下)。
  2. this关键字: 在构造函数中,this关键字指向新创建的对象。
  3. 原型链: 构造函数创建的对象的原型(__proto__)指向构造函数的prototype属性。
  4. 返回对象: 如果构造函数显式返回一个对象,则该对象会作为构造函数的结果返回,否则返回this,即新创建的对象。
function Person(name, age) {
  this.name = name;
  this.age = age;

  this.greet = function() {
    console.log('Hello, my name is ' + this.name + ' and I am ' + this.age + ' years old.');
  };
}

var person1 = new Person('Alice', 30);
person1.greet(); // 输出: Hello, my name is Alice and I am 30 years old.

构造函数与普通函数的区别:

  • 构造函数使用new关键字调用。
  • 构造函数通常首字母大写,以区分普通函数。
  • 构造函数的主要目的是创建对象,而普通函数的主要目的是执行代码和返回值。

注意事项:

  • 避免在构造函数中执行有副作用的操作,因为这些操作会在每次创建新实例时重复执行。
  • 构造函数应该专注于初始化对象的状态,而不是执行复杂的逻辑。

6.自执行函数

在JavaScript中,自执行函数(Immediately-Invoked Function Expression,简称IIFE)是一种运行后立即执行的函数表达式。自执行函数通常用于创建一个新的作用域,避免变量污染全局命名空间。它也可以用于初始化代码,或者作为模块化JavaScript代码的方式。

自执行函数的基本语法如下:


(function() {
  // 你的代码
})();
 

这里的`function()`是一个匿名函数表达式,它后面紧跟一对圆括号`()`,表示这个函数表达式会在定义之后立即执行。

自执行函数有几种不同的形式:

1. **基本形式:**

(function() {
  console.log('自执行函数执行了!');
})();

2. **参数形式:**

你可以向自执行函数传递参数,这在模块模式中非常有用:

var module = (function() {
  var privateVar = '我不会被外部访问';

  return {
    publicMethod: function() {
      console.log(privateVar);
    }
  };
})();

module.publicMethod(); // 输出 '我不会被外部访问'

3. **使用箭头函数:**

ES6引入了箭头函数,它也可以用来自执行:


(() => {
  console.log('使用箭头函数的自执行');
})();

4. **使用命名函数:**

虽然不常见,但自执行函数也可以是命名函数:


(function myFunc() {
  console.log('虽然命名了,但通常不需要知道它的名字');
})();

5. **在表达式中自执行:**

自执行函数可以在赋值表达式中使用:

var result = (function() {
  return 42; // 返回一个值
})();

console.log(result); // 输出 42

自执行函数是JavaScript编程中一个强大的工具,特别是在需要封装和隐藏某些代码逻辑时。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1924819.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

15 - matlab m_map地学绘图工具基础函数 - 一些数据转换函数(二)

15 - matlab m_map地学绘图工具基础函数 - 一些数据转换函数(二) 0. 引言1. 关于m_geodesic2. 关于mygrid_sand23. 结语 0. 引言 通过前面篇节已经将m_map绘图工具中大多绘图有关的函数进行过介绍,已经能够满足基本的绘图需求,本节…

Linux vim文本编辑器

Vim(Vi IMproved)是一个高度可配置的文本编辑器,它是Vi编辑器的增强版本,广泛用于程序开发和系统管理。Vim不仅保留了Vi的所有功能,还增加了许多新特性,使其更加强大和灵活。 Vim操作模式 普通模式&#xf…

下载安装nodejs npm jarn笔记

下载安装nodejs npm jarn笔记 下载 Node.js安装Node.js修改node全局路径安装yarn 下载 Node.js 下载Node.js 安装Node.js 双击下载的下来的.msi文件运行并安装一直点next。安装路径可以是默认也可自定义。安装完成后Node.js和npm就安装完成了 命令行输入: nod…

企业网络实验(vmware虚拟机充当DHCP服务器)所有IP全部保留,只为已知mac分配固定IP

文章目录 需求实验修改dhcp虚拟机配置文件测试PC获取IP查看user-bind 需求 (vmware虚拟机充当DHCP服务器)所有IP全部保留,只为已知mac分配固定IP 实验 前期配置: https://blog.csdn.net/xzzteach/article/details/140406092 后续配置均在以上配置的前…

【学术会议征稿】第三届智能电网与能源系统国际学术会议

第三届智能电网与能源系统国际学术会议 2024 3rd International Conference on Smart Grid and Energy Systems 第三届智能电网与能源系统国际学术会议(SGES 2024)将于2024年10月25日-27日在郑州召开。 智能电网可以优化能源布局,让现有能源…

推荐一款uniapp拖动验证码插件

插件地址:易盾验证码 - DCloud 插件市场 具体使用方式访问插件地址自行获取

【教程】Vue2中使用svg矢量图

1.npm导包 npm i svg-sprite-loader --save2.创建目录放入svg文件,创建SvgIcon.js 3.SvgIcon.js const req require.context(./svg, false, /\.svg$/) const requireAll requireContext > requireContext.keys().map(requireContext) requireAll(req)4.vue.c…

【Js】导出 HTML 为 Word 文档

在 Web 开发中,有时我们希望用户能够将网页上的 HTML 内容保存为 Word 文档,以便更方便地分享和打印。 html样式 word文档 工具准备 1、 html-docx-js - npm html-docx-js是一个 JavaScript 库,用于将 HTML 内容转换为 Word 文档的格式。它…

MySQL-基础点

目录 MySQL概念 数据库三大范式是什么? blob 和 text 有什么区别? DATETIME 和 TIMESTAMP 的异同? MySQL 中 in 和 exists 的区别? MySQL 里记录货币用什么字段类型比较好? MySQL 怎么存储 emoji? 用过哪些 M…

.NET MAUI开源架构_2.什么是 .NET MAUI?

1.什么是.NET MAUI? .NET 多平台应用 UI (.NET MAUI) 是一个跨平台框架,用于使用 C# 和 XAML 创建本机移动和桌面应用。使用 .NET MAUI,可从单个共享代码库开发可在 Android、iOS、macOS 和 Windows 上运行的应用。 .NET MAUI 是一款…

Flower花所比特币交易及交易费用科普

在加密货币交易中,选择一个可靠的平台至关重要。Flower花所通过提供比特币交易服务脱颖而出。本文将介绍在Flower花所进行比特币交易的基础知识及其交易费用。 什么是Flower花所? Flower花所是一家加密货币交易平台,为新手和资深交易者提供…

Python + OpenCV 简单车辆统计

目录 1 源码 2 运行结果 Python OpenCV 简单车辆统计 IDE : PyChram 1 源码 函数 car_count() 简单车辆统计 # 这是一个示例 Python 脚本。# 按 ShiftF10 执行或将其替换为您的代码。 # 按 双击 Shift 在所有地方搜索类、文件、工具窗口、操作和设置。 import cv2 impor…

Mojo语言的运用

1.Mojo语言概述 1.1什么是Mojo语言? Mojo语言是一种现代的动态编程语言,主要用于Web开发。它结合了多种语言的优点,如JavaScript、Perl和Lua,旨在为开发者提供: 简洁的语法:易于学习和使用,适…

课程设计——Python+OpenCV数字图像处理[车牌识别]

Python opencv 车牌识别 数字图像处理课程设计作业Python3OpenCV使用tkinter搭建界面tmp/文件夹是数字图像处理过程chepai/文件夹是车牌图片pic/文件夹是程序界面图PPT文件是验收时要讲的程序是从网上学习的并自己弄的,不完善,识别率不高 开发环境配置…

Java核心篇之JVM探秘:垃圾回收算法与垃圾收集器

系列文章目录 第一章 Java核心篇之JVM探秘:内存模型与管理初探 第二章 Java核心篇之JVM探秘:对象创建与内存分配机制 第三章 Java核心篇之JVM探秘:垃圾回收算法与垃圾收集器 第四章 Java核心篇之JVM调优实战:Arthas工具使用及…

QT creator与VS2019 QT加载模块方法

QT creator与VS2019加载模块方法 QT creator,pro文件添加 VS2019 QT

JavaScript中的面向对象编程

OPP在JavaScript的表现方式:原型 传统的OPP:类 ● 对象(实例)由类实例化,类的功能类似于蓝图,通过蓝图来实现建筑(实例) ● 行为(方法)从类复制到所有实例 …

子进程继承父进程文件描述符导致父进程打开设备文件失败

开发过程中有时会遇到需要在程序中执行三方程序或者shell脚本,一般会通过system(), popen(), exec簇来完成该功能。我们知道以上方法会通过fork创建子进程后在子进程中执行相应指令。如图1为某个示例流程,具体的程序执行流程如图2所示,线程my…

Android ListView

ListView ListView是以列表的形式展示具体内容的控件,ListView能够根据数据的长度自适应显示,如手机通讯录、短消息列表等都可以使用ListView实现。如图1所示是两个ListView,上半部分是数组形式的ListView,下半部分是简单列表Lis…

WPF学习(5) -- WPF绑定

一、双向绑定 1.代码示例 <Window x:Class"学习.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expres…