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应用程序

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

阿里云服务器ECS产品知识及购买和使用常见问题及答案汇总

本文总结了阿里云用户在购买和使用阿里云服务器中的一些常见的问题,包括什么是云服务器ECS,特性与优势,应用场景,基本概念,使用限制等众多问题,让您全方位了解阿里云服务器,并根据自己的需求选择…

在ASP.NET Core 中使用 .NET Aspire 消息传递组件

前言 云原生应用程序通常需要可扩展的消息传递解决方案,以提供消息队列、主题和订阅等功能。.NET Aspire 组件简化了连接到各种消息传递提供程序(例如 Azure 服务总线)的过程。在本教程中,小编将为大家介绍如何创建一个 ASP.NET …

Lora学习资料汇总

目录 LoRa联盟 Semtech lora网关供应商: LoRaMAC API文档 论坛 开发板 主流技术对比分析 LoRa网络距离模拟测试方法 LoRa应用 LoRa联盟 LoRa联盟:LoRaWAN规范的制定组织 https://www.lora-alliance.org/ LoRa技术白皮书:https://www.lora-alli…

vue2指令的使用和自定义指令

前言 个人认为vue的指令,对比react来说,给开发者节省了很大的学习成本。比如在react中,你想渲染一个列表,需要用Array.map的方法return<div>,而在vue中,一个简单的v-for就解决了问题。 在学习成本和入手体验上,vue的作者确实后来者居上,能让人更快的使用vue开发。不过也…

【unity实战】如何更加规范的创建各种Rogue-Lite(肉鸽)风格的物品和BUFF效果(附项目源码)

文章目录 前言定义基类实现不同的BUFF效果一、回血BUFF1. 简单的回血效果实现2. BUFF层数控制回血量 二、攻击附带火焰伤害三、治疗领域1. 简单的治疗领域实现2. 添加技能冷却时间 通过拾取物品获取对应的BUFF参考源码完结 前言 当创建各种Rogue-Lite&#xff08;肉鸽&#xf…

接口传参数list的时候,items里面放个​​​​​​​list

item里面放个list 先定义一个 list&#xff0c;循环add加入参数

xorm源码学习

文章目录 XORM源码浅析及实践ORMORM vs. SQLXORM软件架构 ORM 引擎 Engine——DBM*core.DB Golang&#xff1a;database/sql 源码基本结构连接复用&#xff0c;提高性能。增加数据库连接池数量连接管理 database/sql主要内容&#xff1a;sql.DB创建数据库连接sql.Open()DB.conn…

状态设计模式是什么?什么是 State 状态设计模式?Python 状态设计模式示例代码

什么是 State 状态设计模式&#xff1f; 状态设计模式是一种行为型设计模式&#xff0c;它允许一个对象在其内部状态发生改变时改变其行为&#xff0c;使其看起来好像改变了其类。状态模式主要解决的问题是&#xff1a;当一个对象的行为取决于它的状态&#xff0c;并且在运行时…

2023年亚太地区数学建模大赛

中国新能源电动汽车的发展趋势 新能源汽车是指采用先进的技术原理、新技术和新结构&#xff0c;以非常规车用燃料&#xff08;非常规车用燃料是指汽油和柴油以外的燃料&#xff09;为动力源&#xff0c;集成先进的汽车动力控制和驱动技术的汽车。新能源汽车包括四大类型&#…

人工智能带来的各方面影响

近年来&#xff0c;人工智能&#xff08;AI&#xff09;技术在各个领域中的应用越来越广泛&#xff0c;已经开始对我们的生活方式、社会和经济结构产生深远的影响。 1.人工智能家庭化。人工智能技术使我们的生活变得更加便利和智能化。在家庭日常中&#xff0c;智能家居、智能…

WPF绘图使用介绍

文章目录 WPF绘图基本用法绘制直线在XAML中绘制直线在C#代码中绘制直线使用Path绘制直线注意 矩形绘制在XAML中绘制矩形在C#代码中绘制矩形设置矩形的位置使用圆角矩形 画刷1. SolidColorBrush2. LinearGradientBrush3. RadialGradientBrush4. ImageBrush5. DrawingBrush6. Vis…

FDG6306P PowerTrench® MOSFET P沟道 特点及其应用详解

关于PowerTrench MOSFET&#xff1f; 它是一种MOS场效应晶体管&#xff0c;可以提高系统效率和功率密度。该技术采用了屏蔽栅极技术&#xff0c;可以减少开关损耗和导通损耗&#xff0c;从而提高了系统效率。此外&#xff0c;PowerTrench MOSFET还具有低导通电阻和高开关速度的…

Python---函数的应用案例(多个)涉及函数、字符串翻转修改

案例&#xff1a;使用print方法打印一条横线 下面是最原始的方法&#xff1a; print(- * 40) 案例&#xff1a;对上个案例进行升级&#xff0c;可以根据输入的num数值&#xff0c;生成指定数量的横线 相关链接Python----range方法&#xff08;函数&#xff09;-CSDN博客 Pyt…

现代计算与光学的跨界机遇——

时至今日&#xff0c;互补氧化金属半导体&#xff08;CMOS&#xff09;技术的飞速发展促进了集成电路的空前成功。 晶体管的创新与时俱进 正如戈登-E-摩尔&#xff08;Gordon E. Moors&#xff09;在1965年预测的那样&#xff0c;每隔18-24个月&#xff0c;计算芯片上的晶体管数…

手把手教你通过CODESYS V3进行PLC编程(二)

教程背景 在上一期教程中&#xff0c;我们已经完成了控制器设备的连接和配置。接下来的教程将继续以宏集MC-Prime为例&#xff0c;假设控制器已经配置并连接到开发者的PC上&#xff0c;为您演示如何为控制器安装合适的CODESYS V3版本并创建第一个程序。 一、安装CODESYS &…

TikTok青年领袖:短视频如何塑造新一代

在数字时代的潮流中&#xff0c;短视频平台TikTok崭露头角&#xff0c;成为年轻一代最喜爱的社交媒体之一。这个平台不仅改变了用户的娱乐方式&#xff0c;更在其中催生了一批富有创造力和影响力的青年领袖。 本文将深入探讨TikTok如何通过短视频内容塑造新一代的青年领袖&…

Modbus转Profinet改变局面,PLC与电力仪表秒级响应

Modbus转Profinet改变了传统的局面&#xff0c;实现了PLC与电力仪表之间的秒级响应。在过去&#xff0c;由于Modbus通信协议的限制&#xff0c;PLC与电力仪表之间的数据传输速度受到了很大的限制&#xff0c;无法满足工业自动化领域对实时性的要求。然而&#xff0c;随着Modbus…

加班做报表被嘲低效!快用大数据分析工具

做数据分析报表很耗时间&#xff0c;因为不仅要解决多业务系统数据质量标准不一问题&#xff0c;还需要进行大量的公式计算、报表设计与制作。但那是以前&#xff0c;在大数据分析工具强势崛起的当下&#xff0c;这些工作都能交给大数据分析工具来做了。以前是花90%的时间做报表…

快慢指针判断环形链表

我们在前面文章中写过用快慢指针判断链表是否带环&#xff1a; leetcode&#xff1a;环形链表-CSDN博客 我们用的是slow指针一次走一步&#xff0c;fast指针一次走两步&#xff0c;当slow入环后开始了追击&#xff0c;每走一次距离缩短1&#xff0c;最终就会相遇 思考问题 …

CURL踩坑记录

因为项目使用的windows server&#xff0c;且没有安装Postman&#xff0c;所以对于在本地的Postman上执行的请求&#xff0c;要拷贝到服务器执行&#xff0c;只能先转化成为curl命令&#xff0c;操作也很简单&#xff0c;如下&#xff1a; 注意&#xff0c;Postman默认对url包围…