当前位置: 首页 > article >正文

JavaScript | 对象

对象

JS中,对象是一组无序的相关属性方法的集合,所有的事物都是对象,例如:字符串、数值、数组、函数等

对象是由属性与方法组成的

  • 属性:事物的特征,在对象中用属性来表示(一般用名词)
  • 方法:事物的行为,常用动词命名

创建对象

1、利用字面量创建对象
var obj = {};//创建了一个空对象
var obj = {uname:'Yuuka',age:16,sex:'女',sayHi:function(){//方法console.log('hi~');}
};
  • 里面的属性或方法,我们采用键值对的形式
  • 多个属性与方法用逗号隔开
  • 方法冒号后面跟的是一个匿名函数
调用对象的属性:
  • 对象名.属性名
  • 对象名['属性名'](类似py中字典取值)
console.log(obj.uname);// Yuuka
console.log(obj['age']);// 16
obj.sayHi();// hi~

注意:在对象中定义属性时,键值对的键即使是它应该是字符串类型,也不用加引号;但是如果在调用时,如果是采用点的方式把属性点出来,也可以不用引号,如果是用key来索引的话,就要加引号

如果是引用对象的方法,采用点的方式也可以,但是要在后面加小括号

2、利用new Object创建对象
var obj = new Object();//创建一个空对象
obj.uname = 'Yuuka';
obj.age = 16;
obj.sex = '女';
obj.sayHi = function(){console.log('hi~');
};
  • 先创建空对象
  • 用对象点的方式创建并给属性赋值、写方法;
  • 调用与前面的一样
3、利用构造函数来创建对象

前面两种的方法一次只能创建一个对象,这些对象的属性与方法相同,所以可以用函数的方法来重复这些代码,这个函数就叫构造函数,因为这个函数封装的是对象。

构造函数:把对象里面一些相同的属性和方法抽象出来,封装到函数里面

语法格式:

function 构造函数名(){// thisthis.属性 =;this.方法 = function(){}
}
new 构造函数名();// 调用构造函数

演示:我们要创建四个人的对象,他们有相同属性和方法:名字、年龄、性别;唱歌

function Student(uname,age,sex){this.name = uname;this.age = age;this.sex = sex;this.sing = function(song){console.log(song);}
}
var Yuuka = new Student('Yuuka',16,'女');
console.log(Yuuka.name);// Yuuka
console.log(Yuuka['age']);// 16
// 我要再创建一个,如下
var Noa = new Student('Noa',16,'女');
  • 构造函数名字的首字母要大写
  • 把抽象出来的属性作为参数传给构造函数
  • 构造函数内,抽象出来的属性和方法要用this点来创建,把参数赋值给属性;方法就按照之前的方法(类似函数表达式)来声明和定义,不过也要用this点,方法中的参数如果需要参数,也直接写入即可
  • 构造函数不用return就能返回结果,这个结果的类型是Object(对象)
  • 调用构造函数时要用new来调用,参数直接传实参即可,它会通过构造函数传给创建出来的对象的属性,方法中的参数就不需要在这里传
  • 调用构造函数并传入参数时,要声明一个变量来接收返回值,这个变量名可以是要创建的对象名
  • 调用对象的属性时直接用对象名点出来即可,跟之前的调用方式一样
  • 调用对象的方法时调用方法也和之前一样,如果有参数,可以直接传入即可。
  • 如果还要创建对象,就是重复上述过程

这里就类似创建一个“父对象”,父对象定义一些属性与方法,然后孩子对象通过调用这个“父对象”,来实现继承,又通过对子对象传入的实参,来实现“多态”

构造函数与对象

  • 构造函数,比如前面的(Student),抽象了对象的公共部分,封装到函数里面,泛指某一大类
  • 创建对象,比如前面的(Yuuka),特指某一个,通过new关键字创建对象的过程,称为对象实例化

new关键字

1、new构造对象可以在内存中创建一个空对象

2、this会指向这个对象,然后把属性和方法都添加给这个对象

3、返回这个新对象(所以构造函数不用return)

遍历对象

for…in…语句用于对数组或对象的属性进行循环操作
for(变量 in 对象){
}

演示:

var obj = {name:'Yuuka',age:16,sex:'女',
};
for(var k in obj){console.log(obj[k]);
}
// Yuuka 16 女
  • 类似py里遍历字典取value
  • 遍历其实还可以遍历出方法的
  • 如果遍历时输出是用k来输出,输出的是属性名,而不是值

相关文章:

JavaScript | 对象

对象 JS中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如:字符串、数值、数组、函数等 对象是由属性与方法组成的 属性:事物的特征,在对象中用属性来表示(一般用名词)方法:…...

内网文件传输新体验,聊天、传输、自定义,一应俱全

Flix 是一款高效、便捷的跨平台局域网文件传输工具,支持 Windows、macOS、Android、iOS 和 Linux 等多种操作系统。它以简洁直观的聊天式界面为特色,让用户能够像发送消息一样轻松地传输文件,无需复杂的设置或登录。Flix 支持大文件和多种格式…...

Vue PDF Annotation plugin library online API examples

This article introduces the online version of the ElasticPDF API tutorial for the PDF annotation plug-in library in Vue projects. The API includes ① Export edited PDF data; ② Export annotations json data; ③ Reload old annotations; ④ Change files; ⑤ Se…...

Go 学习笔记 · 进阶篇 · 第一天:接口与多态

🐶Go接口与多态:继承没了,但自由炸裂! 最近翻 Go 的代码,突然看到这么一段: type Animal interface {Speak() string }我一愣,咦?这不就是 Java 里常见的“接口”吗? …...

C语言传参寄存器压栈流程总结

相关 《Linux函数调用栈的实现原理(X86)》 总结 rsp向低地址生长(栈顶),rbp记录旧值(栈底)。 intel x86测试,六个和六个以内的参数用寄存器传递。8个参数场景,6个用寄存…...

C盘清理——快速处理

C盘清理 | 快速处理 软件:小番茄C盘清理 https://ccleancdn.xkbrowser.com/cleanmaster/FanQieClean_13054_st.exe 前言:为什么需要专业的C盘清理工具? 作为一位长期与Windows系统打交道的技术博主,我深知C盘空间不足带来的痛苦…...

前端服务配置详解:从入门到实战

前端服务配置详解:从入门到实战 一、环境配置文件(.env) 1.1 基础结构 在项目根目录创建 .env 文件: # 开发环境 VUE_APP_API_BASE_URL http://localhost:3000/api VUE_APP_VERSION 1.0.0# 生产环境(.env.produc…...

历年跨链合约恶意交易详解(四)——Chainswap20210711

漏洞合约函数 function receive(uint256 fromChainId, address to, uint256 nonce, uint256 volume, Signature[] memory signatures) virtual external payable {_chargeFee();require(received[fromChainId][to][nonce] 0, withdrawn already);uint N signatures.length;r…...

Python基于OpenCV和SVM实现中文车牌识别系统GUI界面

说明:这是一个系统实战项目,如需项目代码可以直接到文章最后关注获取。 项目背景 随着智能交通系统和智慧城市的发展,车牌识别技术在车辆管理、交通监控、停车场收费等领域发挥着重要作用。传统的车牌识别系统主要针对英文和数字的识别&…...

有瓶颈设备的多级生产计划问题:基于Matlab的深度解析与实践

内容摘要 本文围绕有瓶颈设备的多级生产计划问题展开,通过实例详细阐述问题背景、建立数学模型,并用Matlab代码进行求解。旨在帮助读者理解该问题的本质,掌握利用Matlab解决此类生产计划优化问题的方法,为企业在实际生产中合理规…...

网络性能优化参数关系解读 | TCP Nagle / TCP_NODELAY / TCP_QUICKACK / TCP_CORK

注:本文为 “网路性能优化” 相关文章合辑。 未整理去重。 如有内容异常,请看原文。 TCP_NODELAY 详解 lenky0401 发表于 2012-08-25 16:40 在网络拥塞控制领域,Nagle 算法(Nagle algorithm)是一个非常著名的算法&…...

mac命令操作

mac命令操作 快速删除一行: control u 剪切文件:步骤1、先进行Command c 进行选择复制文件,2、进行commandoptionv进行移动文件,如果commandv是进行复制文件。 commandcontrolD 三个键即可屏幕取词进行翻译 mac中可以使用快捷方…...

react 18 可中断的理解以及应用

React 的“可中断(interruptible)”渲染,指的是 React 在执行渲染过程中可以暂停、中断、再继续或放弃更新。这是 React 18 引入的并发特性的一部分,目的是让界面响应更流畅,防止“卡顿”。 📖 举个例子&am…...

【Python】Python环境管理工具UV安装gdal

目录 一、UV简介1.2 UV高效包管理工具二、UV配置流程步骤1:安装UV工具步骤2:配置环境变量(Windows)三、UV包管理实战3.1 常用命令速查3.2 完整 `uv` 工作流(无需手动 `venv`)**1. 创建项目****2. 初始化依赖管理(可选)****3. 添加依赖****4. 运行代码****5. 更新/移除依…...

如何将内网的IP地址映射到外网?详细方法与步骤解析

01 为什么需要将内网IP映射到外网 在当今数字化时代,远程访问内网资源已成为许多企业和个人的刚需。将内网IP地址映射到外网的主要目的是允许外部网络访问内网中的特定服务,比如Web服务器、远程桌面、文件共享等应用场景。无论是企业需要远程办公访问内…...

HTTP 响应头 Strict-Transport-Security 缺失漏洞

HTTP 响应头 Strict-Transport-Security 缺失漏洞 这个漏洞就是说明网站的HTTP响应头中没有设置Strict-Transport-Security,没有设置则可以通过将https自己手动改成htttp的方式进行访问。不安全 解决方法 1.nginx配置 nginx中增加如下配置: location / …...

【SPSS/EXCEl】主成分分析构建__综合评价指数

学习过程中实验操作的记录 1.数据准备和标准化: (1)区分正负相关性:判断每个因子是正向指标还是负向指标,计算每个的最大值和最小值 (2) 标准化: Min-Max标准化 Min-Max标准化(最大最小值法): 将数据映射到指定的区间&#xff…...

电池分选机:新能源时代的品质守护者|深圳比斯特自动化

在这个新能源蓬勃发展的时代,电池作为能量的存储与释放单元,其性能与质量直接关系到整个系统的稳定运行与效率提升。而电池分选机,作为电池生产流程中的关键一环,正扮演着品质守护者的角色,为新能源产业的高质量发展保…...

STM32江科大----IIC

声明:本人跟随b站江科大学习,本文章是观看完视频后的一些个人总结和经验分享,也同时为了方便日后的复习,如果有错误请各位大佬指出,如果对你有帮助可以点个赞小小鼓励一下,本文章建议配合原视频使用❤️ 如…...

顺序表——C语言实现

目录 一、线性表 二、顺序表 1.实现动态顺序表 SeqList.h SeqList.c Test.c 问题 经验:free 出问题,2种可能性 解决问题 (2)尾删 (3)头插,头删 (4)在 pos 位…...

ARM 汇编启动代码详解:从中断向量表到中断处理

ARM 汇编启动代码详解:从中断向量表到中断处理 引言 在嵌入式系统开发中,ARM 处理器(如 Cortex-A 系列)的启动代码是系统初始化和运行的基础。启动代码通常包括中断向量表的创建、初始化硬件状态(如关闭缓存和 MMU&a…...

LTSPICE仿真电路:(二十六)跨阻放大器简单仿真

1.前言 由于有个机会刚好了解了下跨阻,简单做个这个仿真,实际上跨阻放大器应该要复杂的多,由于跨阻放大器实际上是将电流转换为电压,最需要注意的参数肯定是运放的偏置电流 2.跨阻放大器仿真 这篇是纯记录 这是一个将0-50uA电流…...

特辣的海藻!15

题 1.迷宫 - 蓝桥云课 2.外卖店优先级 - 蓝桥云课 3.后缀表达式 - 蓝桥云课 题 1.迷宫 - 蓝桥云课 import java.util.*;public class Main {static class Node {int x;int y;String str;public Node(int x, int y, String str) {this.x x;this.y y;this.str str;} …...

RISCV GCC 后端 -- 依赖(Dependence)简析

在命令式语言,如C/C中,其依赖关系及分类如下: 依赖(Dependence) -- Control Dependence -- Data Dependence (Reads and Writes of the same location, registers / Memories etc) -- True Dependence (Write then Rea…...

算法-- js排序

汇总 注:以下log n 是 O(log2n) 注:快速排序实际应用中通常最优,但需避免最坏情况。 1 快速排序 [快速排序的思路] 分区:从数组中任意选择一个“基准”,所有比基准小的元素放在基准前面,比基准大的元素…...

FfreeRTOS有阻塞作用的API

在 FreeRTOS 中,阻塞 API 是指那些会导致调用任务进入阻塞状态(Blocked State)的函数,即任务会暂时让出 CPU,直到某个条件满足(如超时、信号量可用、队列数据到达等)。以下是常见的阻塞 API 分类及示例: 1. 任务延迟(延时) vTaskDelay() 使任务阻塞指定的时间(以系统…...

【棒垒球规则】全国幼儿软式棒垒球比赛规则(三)·棒球1号位

棒垒球球队的组成 3.01球队的组成 球队由教练员及工作人员 2 名至 4 名、队员 9 至 12 名组成。 球衣背号不大于两位数,背号不小于 15 厘米。 上场队员名单应填写上场选手和替补选手。 3.02防守位置及名称(参照图四) a.9 名队…...

stm32week10

stm32学习 七.CAN 7.STM32 CAN外设 标识符过滤器: 每个过滤器的核心由两个32位寄存器组成:R1[31:0]和R2[31:0] FSCx:位宽设置,置0为16位,置1为32位 FBMx:模式设置,置0为屏蔽模式,…...

Linux上历史命令显示时间,修改时间戳

今天分享一个生产环境避免背锅的小技巧:设置历史命令执行的具体时间。还可以快速定位问题出现的时间点并恢复误操作导致的系统问题,用于追踪溯源。 在Linux系统中,默认情况下,history命令只会显示命令的编号和命令内容&#xff0…...

看雪 get_pwn3(2016 CCTF 中的 pwn3)

get_pwn3(2016 CCTF 中的 pwn3) 格式化字符串漏洞 get_pwn3(2016 CCTF 中的 pwn3) (1) motalymotaly-VMware-Virtual-Platform:~/桌面$ file pwn3 pwn3: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, …...