JavaScript编程基础 – 对象

news2024/11/13 14:44:55

JavaScript编程基础 – 对象

JavaScript Programming Essentials – Object

本文简要介绍JavaScript面向对象编程,如何实现其中的对象以及实例演示,希望对大家学习JavaScript有所帮助。

1. 面向对象编程特点

面向对象编程(Object-Oriented Programming, 即OOP) 是一种在Java, C++, Python等编程语言中广泛应用的编程范式。而JavaScript以独特的方式沿袭了传统的面向对象编程,与传统的编程语言不同,JavaScript有其自己的方式来实现面向对象编程。

接下来,简要介绍以下几个小节,以便理解对象:
 如何创建和使用对象
 对象的属性
 对象的方法

2. 对象

1) 数组的特性

我们从数组引述到对象。

数组是JavaScript语言的重要数据结构。数组实际上就是一组值的列表,该列表的每一个值都有自己的索引(即数字键),索引从零开始,依次递增。

下面是数组的示例:

var colors = [‘red’, ‘blue’, ‘yellow’, ‘purple’, ‘orange’];
console.log(colors);

执行结果如下图所示:
在这里插入图片描述
接下来,如果要通过索引输出值,如下代码:

console.log(colors[0]);
console.log(colors[3]);

执行结果如下图所示:

在这里插入图片描述
将索引排列起来,再把对应的值排列起来,就会列出一个所以对应一个值的列表,形成键、值对的列表。

2) 对象的特性

对象跟数组很相似,唯一的区别是,它的键是自定义的;即对象的索引方式不再限于数字,也可以是类似变量名的键名,例如:firt_name, last_name, age等等。

例如,以下的简单对象:

var hero = {
breed: ‘Turtles’,
occupation: ‘Ninja’
};

可以看到,对象hero有以下特征:

  • 用于表示对象的变量名hero;
  • 使用大括号{ }来定义对象;(与数组的方括号[ ]不同);
  • 括号中用逗号分隔的是组成该对象的元素(即属性);
  • 键/值对之间用冒号分隔,像key: value的格式;

有时在键上加一对单引号或者双引号,例如以下代码,三行完全相同:

var hero = {occupation: 1};
var hero = {'occupation': 1};
var hero = {"occupation": 1};

如果属性名为JavaScript的保留字之一,或者不符合变量命名规则,就必须为其添加一对引号。

3) 对象的属性和方法

数组通常包含元素;而对象包含的是属性

由于函数本身是一种数据,所以,对象的属性也可以是函数;此时,我们称该属性为方法,用它来执行某种动作。
如下代码:

var dog = {
    name: 'Johnson',
    talk: function () {
        return 'Woof, woof!';
    }
};
console.log(dog.name);
console.log(dog.talk());

执行结果如下图所示:
在这里插入图片描述
可以看出,console.log函数输出了dog类其属性name的值,也输出了其方法talk()的值。

访问对象属性可以用上述的点表示法,例如:dog.name, 也可以用方括号表示法,例如:dog[‘name’].

那么, 对象中包含其它对象呢?如何表示其属性?看以下代码:

var book = {
    name: 'JavaScript Tutorial',
    published: 2021,
    author: {
        first_name: 'Amy',
        last_name: 'Antonio'
    }
};

如果想要输出该对象的属性对象author的属性,则需要用“."方式来表示:

console.log(book.author.first_name);

或者用方括号:

console.log(book[‘author’][‘first_name’]);

执行结果如下图所示:

在这里插入图片描述

4) 修改属性与方法

JavaScript允许随时对现存的对象的属性和方法进行修改,也包括添加与删除属性。

以下代码先创建一个空的对象student。

var student = {};

接下来,添加一些属性和方法:

var student = {};
student.name = "Leonardo";
student.sayName = function() {
    return student.name;
};
console.log(student.sayName());

输出调用方法sayName(),执行结果如下图所示:

在这里插入图片描述
同样,如果删除了属性,如下语句:

delete student.name;

然后,再调用该方法,就找不到被删除的name属性了,执行结果如下图所示:
在这里插入图片描述
结果变成undefined, 即属性变量未发现。

5) 小结

对象和数组有相似之处,但是对象用大括号{ }包围;对象中包含键值对,键可以是括号包含的特殊字符串,值可以是数字或字符串。

对象有属性和方法。对象的属性可以被增加、修改和删除,访问访问属性用点或者方括号。对象的方法可以用点方法被调用。

技术好文陆续推出,敬请关注。

喜欢就点赞哈,您的认可是我的动力。😊

相关阅读:
  1. JavaScript编程基础 - 布尔值(Booleans)
  2. Javascript编程基础 - 函数进阶
  3. Javascript编程基础 - 条件语句
  4. Javascript编程基础 - 函数入门
  5. Javascript编程基础 - 关键字Let, Const和Var的区别
  6. Javascript编程基础 - 变量
  7. Javascript编程基础 - 输出
  8. 用Visual Studio Code运行JavaScript程序失败的解决办法
  9. 用Visual Studio Code搭建JavaScript开发环境
  10. 用CodePen实现JavaScript程序动态在线开发
  11. 在Jupyter Lab(Notebook)上安装运行JavaScript应用程序

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

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

相关文章

万字长文 - Python 日志记录器logging 百科全书 - 高级配置之 日志文件配置

万字长文 - Python 日志记录器logging 百科全书 - 高级配置之 日志文件配置 前言 在 Python 的logging模块中,它不仅提供了基础的日志功能,还拥有一系列高级配置选项来满足复杂应用的日志管理需求。 说到logging 模块的高级配置,必须提及日…

STM32_7(ADC)

一、ADC ADC(Analog-Digital Converter)模拟-数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁12位逐次逼近型ADC,1us转换时间输入电压范围:0~3.3V,…

命名空间、字符串、布尔类型、nullptr、类型推导

面向过程语言:C ——> 重视求解过程 面向对象语言:C ——> 重视求解的方法 面向对象的三大特征:封装、继承和多态 C 和 C 在语法上的区别 1、命名空间(用于解决命名冲突问题) 2、函数重载和运算符重载&#xf…

C语言进阶之路-基本数据小怪篇

目录 一、学习目标: 二、数据基本类型 整型 浮点型 / 实型 字符 字符串 布尔型数据 三、重要的杂七杂八知识点 常量与变量 标准输入 sizeof运算符: 类型转换 数据类型的本质 整型数据尺寸 可移植性整型 拿下第一个C语言程序 总结 一、学…

MySQL数据库主从集群搭建

快捷查看指令 ctrlf 进行搜索会直接定位到需要的知识点和命令讲解(如有不正确的地方欢迎各位小伙伴在评论区提意见,博主会及时修改) MySQL数据库主从集群搭建 主从复制,是用来建立一个和主数据库完全一样的数据库环境&#xff0c…

win10安装pytorch(py39)

cuda≤11.6,观察控制面板 观察torch对应cuda版本 https://download.pytorch.org/whl/torch/ 安装cuda11.6.0 CUDA Toolkit Archive | NVIDIA Developer cmd输入nvcc -V 编辑国内镜像源 .condarc anaconda prompt输入 查看环境 conda env list 安装py3.9…

LedControl 库说明文档

LedControl 库最初是为基于 8 位 AVR 处理器的 Arduino 板编写的。但由于该代码不使用处理器的任何复杂的内部功能,因此具有高度可移植性,并且应该在任何支持 和 功能的 Arduino(类似)板上pinMode()运行digitalWrite() 。 单个 M…

中电金信:守【政】创新,探路保险数字化转型“新范式”

11月23日,CIIP2023中国保险科技创新合作大会在京举办。大会汇集保险科技领域行业专家、学者、国内外头部险企及保险科技公司负责人等各界人士,立足保险行业高质量发展和创新驱动理念,寻找行业数字化转型新动能、新视角,为保险科技…

【基础知识】AB软件RSLinx如何实现OPC通讯组态

哈喽,大家好,我是雷工。 在上一节了解了什么是RSLinx?以及RSLinx Lite、RSLinx Classice、RSLinx Professional、RSLinx Gateway几个版本的特点。 本节了解AB的RSLinx如何实现OPC组态。 一、创建RSLinx通讯: 1.1、【Communicati…

vue2项目从0搭建(三):配置环境变量及对应的webpack配置

前言 实际业务开发中,一个项目很可能会同时配置好几套环境。 比如:常规开发环境,开发测试环境,正式的测试环境,预发测试环境,客户甲的生产环境,客户乙的生产环境,通用生产环境,独立应用环境,微前端环境,大屏专用环境,移动端环境。 一女多嫁的实际业务场景,就需要我们进行多样…

mac上Homebrew的安装与使用

打开终端:command空格 ,搜索‘’终端 ’,打开终端 在终端中输入以下命令并按下回车键: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"这个命令会自动下载并安装…

某60区块链安全之未初始化的存储指针实战二学习记录

系列文章目录 文章目录 系列文章目录未初始化的存储指针实战二实验目的实验环境实验工具实验原理实验内容实验过程EXP利用 未初始化的存储指针实战二 实验目的 学会使用python3的web3模块 学会分析以太坊智能合约未初始化的存储指针漏洞 找到合约漏洞进行分析并形成利用 实验…

win11渗透武器库,囊括所有渗透工具

开箱即用,最全的武器库,且都是2023年11月最新版,后续自己还可以再添加,下载地址:https://download.csdn.net/download/weixin_59679023/88565739 服务连接 信息收集工具 端口扫描 代理抓包 漏洞扫描 指纹识别 webshel…

apipost接口200状态码,浏览器控制台500状态码

后端 url 登录login方法 login(){this.$refs.loginForm.validate(async valid > {if (!valid) return// 由于data属性是一个json对象,需要进行解构赋值{data:result},进行状态码判断const {data: result} await this.$http.post(/api/doLogin,this.…

解决在Windows10或Windows11下无权限修改hosts文件

解决在Windows10或Windows11下无权限修改hosts文件,无法写入内容 1、首先在开始菜单中找到这个 2、接着输入: C:\Windows\System32\drivers\etc3、再次输入以下命令行:notepad hosts ,并回车: notepad hosts 4、然后…

Java专题(二)反射

反射概述 Java 反射就是在运行的状态下,对于任意一个类,都能知道这个类的任意的属性和方法,并且能调用这些方法或者改变这些类的属性,因此 Java 被称为准动态语言。 动态语言和静态语言 上面说了 Java 是准动态的语言&#xff0c…

面向对象三大特性,类与接口,java重写与重载,对象相等的判断, hashCode 与 equals

文章目录 2.1 面向对象三大特性2.1.1 封装 继承 多态2.1.2 其中Java 面向对象编程三大特性:封装 继承 多态2.1.3 关于继承如下 3 点请记住:2.1.4 什么是多态机制?Java语言是如何实现多态的?2.1.5 Java实现多态有三个必要条件&…

电脑中提示关于ntdll.dll错误怎么办,解决出现ntdll.dll错误的办法

ntdll.dll是Windows操作系统的一个关键系统文件,它包含了许多核心函数和系统调用,对于系统的稳定运行至关重要。然而,有时我们可能会遇到ntdll.dll报错的问题,导致程序无法正常运行。那么今天就和大家谈谈电脑中提示关于ntdll.dll…

企业计算机服务器中了360勒索病毒怎么办,360勒索病毒解密文件恢复

计算机技术的不断发展,为企业的生产运营提供了极大便利,不仅提升了办公效率,还促进了企业的发展。企业计算机在日常工作中一定加以防护,减少网络威胁事件的产生,确保企业的生产生产运营。最近,网络上的360后…

两巨头Facebook 和 GitHub 联手推出 Atom-IDE

9月13日,GitHub 宣布与 Facebook 合作推出了 Atom-IDE —— 它包括一系列将类 IDE 功能带到 Atom 的可选工具包。初次发布的版本包括更智能、感知上下文的自动完成;导航功能,如大纲视图和定义跳转(outline view and goto-definition)&#xf…