JavaScript编程基础 – 对象

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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot的图书管理系统

基于SpringBoot的图书管理系统 图书管理系统开发技术功能模块代码结构数据库设计运行截图源码获取 图书管理系统 开发技术 技术:SpringBoot、MyBatis-Plus、MySQL、Beetl、Layui。 框架:基于开源框架Snowy-Layui开发。 工具:IDEA、Navicat等…

【正则插件】前端正则插件以及预览插件推荐

1) 2) any-rule Pegex Previewer 下载好插件之后 在代码层右键选择 选择你需要的正则表达式,随后可以使用第二个插件 正则表达式插入之后顶部会有 Test Regex.. 点击会出现以下内容 将他 ctrl a 删除,输入你对应的正则表达…

【IEEE独立出版 | 往届均完成检索】2024年第四届消费电子与计算机工程国际学术会议(ICCECE 2024)

#国际学术会议# 推荐 #广州# 【IEEE独立出版 | 往届均完成检索】2024年第四届消费电子与计算机工程国际学术会议(ICCECE 2024) 2024 4th International Conference on Consumer Electronics and Computer Engineering 2024年1月12-14日 | 中国广州 会…

【Linux】make/Makefile 进度条小程序

目录 一,认识 make/makefile 二,实例代码 1,依赖关系 2,原理 3,项目清理 4,测试讲解 三,Linux第一个小程序-进度条 game.h game.c test.c 程序详解 一,认识 m…

论设备管理的发展趋势及对策

作者:韩平 设备是企业生产要素的一个重要组成部分,是企业进行生产活动的物质硬件基础,也是决定企业生产效能的重要因素之一。 设备管理又称设备工程,是根据企业生产经营目标,为了提高设备效能,在调查研究…

【Web】NodeJs相关例题wp

目录 ①[GKCTF 2020]ez三剑客-easynode ②[MoeCTF 2021]fake game ③[安洵杯 2020]Validator ④ [HZNUCTF 2023 final]eznode ⑤[CNSS] 🏭 EzPollution_pre ⑥[CNSS]✴️ EzPollution ①[GKCTF 2020]ez三剑客-easynode const express require(express); co…

009 OpenCV threshold

一、环境 本文使用环境为: Windows10Python 3.9.17opencv-python 4.8.0.74 二、二值化算法 2.1、概述 在机器视觉应用中,OpenCV的二值化函数threshold具有不可忽视的作用。主要的功能是将一幅灰度图进行二值化处理,以此大幅降低图像的数…

使用 PowerShell 创建共享目录

在 Windows 中,可以使用共享目录来将文件和文件夹共享给其他用户或计算机。共享目录可以通过网络访问,这使得它们非常适合用于文件共享、协作和远程访问。 要使用 PowerShell 创建共享目录,可以使用 New-SmbShare cmdlet。New-SmbShare cmdl…

规则引擎Drools使用,0基础入门规则引擎Drools(一)基础入门

文章目录 系列文章索引一、规则引擎概述1、引出问题2、什么是规则引擎3、使用规则引擎的优势4、规则引擎应用场景 二、Drools介绍1、Drools概述2、Drools构成3、相关概念说明4、Drools执行过程5、KIE介绍 三、Drools入门案例1、业务场景说明2、开发实现 四、Drools基础语法1、规…

ios打包,证书获取

HBuilderX 打包ios界面: Bundle ID(AppID): 又称应用ID,是每一个ios应用的唯一标识,就像一个人的身份证号码; 每开发一个新应用,首先都需要先去创建一个Bundle ID Bundle ID 格式: 一般为&…

vue el-table (固定列+滚动列)【横向滚动条】确定滚动条是在列头还是列尾

效果图&#xff1a; 代码实现&#xff1a; html&#xff1a; <script src"//unpkg.com/vue2/dist/vue.js"></script> <script src"//unpkg.com/element-ui2.15.14/lib/index.js"></script> <div id"app" style&quo…

ubuntu上编译proj-7.1.0出现tiffio.h找不到的错误

作者&#xff1a;朱金灿 来源&#xff1a;clever101的专栏 为什么大多数人学不会人工智能编程&#xff1f;>>> 在编译ubuntu上编译proj-7.1.0出现下面错误&#xff1a; grids.cpp:41:10: fatal error: tiffio.h: No such file or directory41 | #include "tif…