JS-对象详解

JavaScript全解析——对象 ●其实就是我们准备一个房子,把我们想要的数据放进去,然后把房子的地址给到变量名,当我们需要某一个数据的时候,就可以根据变量名里面存储的地址找到对应的房子,然后去房子里面找到对应的数据。○数组关联语法, 当你的 [] 内书写的是一个变量的时候,会把变量解析出来填充在 [] 内。○Object 是 js 内置给我们的构造函数,用于创建一个对象使用的。●对象的操作就是操作里面的数据,分为:增、删、改、查。●函数里面的是写代码的,而对象里面是写一些数据的。○但是对象内存放的是键值对,键名是没有规律的。 阅读详情

JS-对象

了解对象前先说说数据类型
数据类型可以分为两大类
1.基本数据类型2.引用数据类型

基本数据类型

String 字符串
Number 数值
Boolean 布尔
Null 空值
Undefined 未定义

引用数据类型

Object 对象

对象

对象属于一种符合的数据类型,在对象中可以保存多个不同数据类型的属性

对象的分类

1.内建对象
-由ES标准中定义的对象,在任何的ES的视线中都可以实现
-比如:Math String Number Boolean Function Object
2.宿主对象
-由JS的运行环境提供的对象,目前来讲主要是指浏览器提供的对象
-比如 DOM BOM
3.自定义对象
-由开发人员创建的对象

对象的基本操作

创建对象

//使用nuw关键字调用的函数,是构造函数
//构造函数是专门用来创建对象的函数
var obj=new Object();
console.log(obj);

在对象中保存的值称为属性
向对象添加属性
语法:对象.属性名=属性值;

obj.name="小阿涵";
obj.age=24;

读取对象中的属性
语法:对象.属性名
如果读取对象中没有的属性,不会报错而是返回undefined

console.log(obj.name);

修改对象的属性值
语法:对象.属性名=新值;

obj.name="阿涵";

删除对象的属性
语法:delete 对象.属性名

delete obj.name;

属性值和属性名

. [] 都是读取属性的运算符
. [] new 在运算符中的优先级最高
属性名:
-对象的属性名强制要求遵守标识符的规范
什么名字都可以
-但是尽量按照标识符的规范去使用
如果使用特殊的属性名,不能使用.的方式操作
需要使用另一种方式:
语法:对象[“属性名”]=属性值;
读取时也需要采取这样的方式
使用 [] 这种形式去操作属性,更加灵活
在 [] 中可以直接传递一个变量 这样变量值是多少就会读取哪个属性
变量的好处就是:灵活
例如:

var obj=new Object();
obj["123"]=789;
console.log(obj["123"]);

属性值:
JS对象的属性值,可以是任意的数据类型
甚至可以是一个对象

obj.test="hello";
obj.test=null;
obj.test=undefined;
//创建一个对象
var obj2=new Object();
obj2.name="小张";
obj.test=obj2;
console.log(obj.test);
//如果要取出obj2的name属性
console.log(obj.test.name);

in 运算符
-可以通过该运算符检查一个对象中是否含有指定的属性
如果有则返回 true 没有则返回 false
语法:
“属性名” in 对象

console.log("test" in obj);

基本数据类型和引用数据类型

JS中的变量都是保存在栈内存中的
区别:
基本数据类型的值直接在栈内存中存储
值与值之间是独立存在,修改一个变量不会影响其他的变量
对象是保存在堆内存中,每创建一个新的对象,就会在堆内存中开辟出一个新的空间,
而变量保存的是对象的内存地址(对象的引用),如果两个变量保存的是同一个对象的
引用,当通过一个变量的修改时,另一个也会受到影响

var a=123;//Number
var b=a;
a++;
console.log("a="+a);//输出124
console.log("b="+b);//输出123

var obj=new Object();
obj.name="小阿涵";
var obj2=obj;
//修改obj name属性
obj.name="阿涵";
//修改前
console.log(obj.name);//输出 小阿涵
console.log(obj2.name);//输出 小阿涵
//修改后
console.log(obj.name);//输出 阿涵
console.log(obj2.name);//输出 阿涵

对象字面量

使用对象字面量创建一个对象

var obj={ };
obj.name="小阿涵";

使用对象字面量,可以在创建对象时,直接指定对象中的属性
语法:
{属性名:属性值,属性名:属性值…}

var obj={
    name:"小阿涵"
}

枚举对象中的属性

所谓的枚举就是将对象中的属性一个个取出来
枚举对象中的属性 使用 for…in语句
语法:
for(var 变量 in 对象){
}
for…in语句中对象有几个属性,循环体就执行几次
每次执行时,就会将对象中的一个属性的名字赋值给变量

var obj={
    name:"小阿涵",
    age:24,
    sex:"男"
}
for (var n in obj){
    console.log("枚举对象"+obj[n]);//输出3次 n的值是哪个属性就找哪个属性
    console.log("属性名"+n);
    console.log("属性值"+obj[n]);
}

工厂方法创建对象

所谓工厂式可以通过该方法大批量的创建对象
该方法适用于大量的重复性代码,可以将重复的属性提取到一个函数内,在需要的时候进行调用该函数

function creatPerson(name,age,sex){
   var obj=new Object();
   obj.name=name;
   obj.age=age;
   obj.sex=sex;
   obj.sayName=function (){
       alert(this.name);
    }
   return obj;
}
var obj2=creatPerson("小阿涵",24,"男");
console.log(obj2);
obj2.sayName();

注意:使用工厂方法创建的对象,使用的构造函数都是Object
所以创建的对象都是Object这个类型
就导致我们无法区分多种不同类型的对象
因此我们需要借助构造函数来区分

构造函数

构造函数就是一个普通的函数,创建方式也与普通函数一样,就是一个创建对象的函数
不同的是构造函数习惯将首字母大写
不同的是两者的调用方式不一样
-普通函数可以直接调用
-构造函数需要使用new关键字来调用
构造函数的执行流程:
1.立刻创建一个新的对象
2.将新建的对象设置为函数中this,在构造函数中可以使用this来引用新建的对象
3.逐行执行函数的代码
4.将新建的对象作为返回值返回
使用同一个构造函数创建的对象,我们称为一类对象,也将一个构造函数称为一个类

function Person(name,age,sex){
    this.name=name;
    this.age=age;
    this.sex=sex;
}
var per=new Person("小阿涵",24,"男");
console.log(per);//输出 Person{name="小阿涵",age=24,sex="男"}

使用instanceof可以检查一个对象是否是一个类的实例
语法:
对象instanceof构造函数
如果是,则返回true,否则false

console.log(per instanceof Person);

原型对象

原型prototype,原型对象也是对象,所以他也有原型。
我们所创建的每一个对象,解析器都会像函数中添加一个prototype
这个属性对应一个对象,这个对象就是我们所谓的原型对象
如果函数作为普通函数调用prototype没有任何作用

当函数以构造函数调用时,他所创建的对象都会有一个隐含的属性,
指向该构造函数的原型对象,我们可以通过__proto__来访问该属性

原型对象就相当于一个公共的区域,所有同一个类的实例都可以访问到这个原型对象,
我们可以将对象中共有的内容,统一设置到原型对象中

当我们访问对象的一个属性或方法时,他会先在对象自身中寻找,如果有则直接使用,
如果没有则会去原型对象中寻找,如果找到则直接使用

function Person(){
    
}
//向Person的原型中添加属性a
Person.prototype.a=123;
//向per中添加a属性
per.a=123;
var per=new Person();
console.log(per.a);

前面补充可以使用 in 运算符来检查该属性是否存在于该对象
“属性名” in 对象名
同样我们也可以使用hasOwnProperty()来检查对象自身是否含有该属性
该方法只有当对象自身中含有属性时才会返回true
有则true无则false

function Person(){
    
}
Person.prototype.name="小阿涵";
var per=new Person();
per.age=24;
console.log(per.hasOwnProperty("name"));//false
console.log(per.hasOwnProperty("age"));//true

补充

对象中的属性可以是任意数据类型

//创建对象
var obj=new Object();
//添加属性
obj.name="小阿涵";
obj.age=24;
//对象中的属性可以是任意数据类型,可以是一个函数
obj.sayName=function (){
  console.log(obj.name);  
};
//调用方法
obj.sayName();//输出 小阿涵
告别卡顿!手把手教你用北鲲云超算平台图形化提交COMSOL仿真任务(附RDP连接技巧) 本文详细介绍了如何利用北鲲云超算平台图形化提交COMSOL仿真任务,解决本地计算资源不足导致的卡顿问题。通过云端高性能计算,用户可轻松配置多核CPU和大内存资源,实现高效仿真计算,并附有RDP连接优化技巧,提升远程操作体验。 阅读详情

相关推荐

云架构师进阶【SAP迁移方案设计】手把手教您玩转SAP上云

一,项目背景介绍 今天又接到了北京某制造企业SAP迁移的场景,先简单说明一下,好好的SAP在运行着为什么要做迁移这类大动作呢?众所周知SAP的ERP是企业的绝对核心系统,尤其对于制造业更是核心的系统,这样一套核心系统还是生产环境在迁移的过程中必然要面临比较大的挑战,如果有任何问题的话,都会对企业的绩效产生很大的影响。 经过跟客户沟通才得知,客户的SAP原来的系统是托管在运营商机房里,近期感染了勒索病毒,导致业务宕机,SAP应用服务器无法启动,仅有的数据库服务器可以运行。基于上述情况公司领导当机立断决定迅

bdsh818的博客 4220

JS对象详解

JS对象详解 js的对象是什么?js的对象类型有哪些?具体实例实例是什么? ECMA-262对JS对象的定义: 属性的无序集合,每个属性存放一个原始值、对象或函数 对象是无特定顺序的值的数组 对象是一种特殊的数据类型,可以包含多个成员 对象成员:Object=Property+Method 属性(Property):封装对象的数据,表示与对象有关的值;对象名、属性名 方法(Method):封装对象的行为,表示对象可以执行的行为或可以完成的功能;对象名、方法名 JS的对象类型: 内部对象:原生对象/内置对象

Maybe_ss的博客 1万+

C# 零基础入门知识点汇总

本文属于C#零基础入门之百识百例系列目录文章。此系列文章已经完结,欢迎大家点击文中文章链接查看详情进行学习。

陈言必行 -- Unity游戏开发领域优质博主 5347

前端学习之JavaScript——内置对象

1. 内置对象 JavaScript 中的对象分为3种:自定义对象 、内置对象、 浏览器对象 前面两种对象是JS 基础 内容,属于 ECMAScript; 第三个浏览器对象属于我们JS 独有的 内置对象就是指 JS 语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法) 内置对象最大的优点就是帮助我们快速开发 JavaScript 提供了多个内置对象:Math、 Date 、Array、String等 2. 查文档 2.1 MDN 学习一个内置对象的使用,只要

Jane_xxxxxy的博客 1050

[24] cuda 应用之 nppi 实现图像颜色通道变换

[24] cuda 应用之 nppi 实现图像颜色通道变换

yohnyang的博客 343

OpenClaw一人公司落地案例:本地商家营销智能体月赚3万的秘密

角色:本地商家营销专家## 核心目标为商家生成高转化率的抖音营销策略,最大化 ROI。## 输入数据- 商家名称: "XX奶茶店"- 过去 30 天视频播放量: 12,000- 客单价: 28 元- 竞品平均播放量: 15,000- 市场趋势: rising## 策略生成规则1. **内容类型**:根据客单价推荐- < 30 元:美食探店 + 优惠券- > 30 元:场景化故事 + 会员权益2. **发布时间**:根据历史数据- 18:00-20:00 高峰期。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 542

初学JavaScript:js中的对象(对象+原型对象)

js中的对象

lalala_dxf的博客 7039

LeRobot 入门教程(十三)集成自定义的机器人、相机等硬件

本文详细介绍了如何将自定义机器人集成到LeRobot生态系统的完整流程。主要内容包括:1)硬件准备与通信接口选择;2)继承Robot基类实现标准接口;3)定义观察特征和动作特征;4)处理设备连接/断开逻辑;5)支持校准与配置;6)实现核心传感器读取和动作发送功能;7)可选遥操作器集成;8)遵循4项规范打包自定义设备(命名前缀、类名对应、文件结构、模块暴露);9)提供了完整实现示例。通过该方案,开发者可让自定义机器人兼容LeRobot的数据采集、控制管道和策略训练等全套工具链。

2506_90492529的博客 1902

详解JS中的对象

详细介绍了在JS中对象的相关属性,从语法、类型以及类的属性的各种操作和类的各种遍历,都有详细的介绍

qq_60754128的博客 1172

【AI智能体】Skills 智能体驱动开发从使用到项目实战详解

Skills 智能体驱动开发从使用到项目实战详解

congge 6599

【RK3399 Ubuntu】基于rk3399的lxde的lubuntu桌面移植适配记录之第二步:最基本Ubuntu根文件系统的相关常用工具完善

文章目录1.使能系统网络管理服务1.1 安装驱动modules管理工具1.2 使能网络服务2.终端自动补全命令功能3.安装ssh服务4.安装系统信息查看工具5.安装resize工具6.安装lrzsz工具7.使能rc.local服务7.1 修改服务Install块7.2 使能rc.local.service服务7.3 添加执行脚本且赋予执行权限 续接上文,本文主要完善前面已经制作好的rootfs 1.使能系统网络管理服务 1.1 安装驱动modules管理工具 apt-get install kmod 1.

wang 恒 的博客 1385

JavaScript对象详解,js对象属性的添加

JavaScript对象详解,对象属性

weixin_44992737的博客 2万+

YOLO格式数据集【数据增强】终极脚本 | 70+种顶级数据增强方法 | 可带标签增强

YOLO格式数据集【数据增强】终极脚本 | 70+种顶级数据增强方法 | 可带标签增强

Coding... 5499

JavaScript对象详解,深入理解js对象

定义: 对象是JavaScript的基本数据类型。对象也是一种复合值:可以通过名字访问这些值,我们可以将对象看做是从字符串到值的映射,当然对象不仅仅是字符串到值的映射,除了自有的属性还可以从原型继承属性。 创建对象: 1.字面量方式 var empty={} //创建一个空对象 var obj={a:1,b:2};//两个属性的对象 var compObj={a:'1',b:'2',cc:{ d:'3', e:'4' } }; //复杂的对象 .

编程界明世隐的博客 3217

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【JS】JavaScript 函数与对象详解

本文介绍了JavaScript函数基础和对象操作的核心概念。函数部分包括声明方式(具名函数、函数表达式、立即执行函数)、参数处理、返回值特性及作用域规则。对象部分涵盖属性操作(访问、修改、删除)、方法定义、遍历技巧(for...in)以及数组对象处理。文章还涉及逻辑运算(&&/||中断)和类型转换规则,强调代码封装复用和变量作用域链的访问原则。通过示例代码展示了JavaScript中函数与对象的常见用法和最佳实践。

weixin_75257080的博客 1688

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

JavaScript对象详解,深入理解js对象,快速从入门到精通

为了帮助大家更好温习重点知识、更高效的准备面试,特别整理了《前端工程师面试手册》电子稿文件。内容包括html,css,JavaScript,ES6,计算机网络,浏览器,工程化,模块化,Node.js,框架,数据结构,性能优化,项目等等。包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。前端面试题汇总CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】JavaScript。

2401_83977825的博客 904

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

JavaScript对象详解,深入理解js对象,web设计与开发

基础知识是前端一面必问的,如果你在基础知识这一块翻车了,就算你框架玩的再6,webpack、git、node学习的再好也无济于事,因为对方就不会再给你展示的机会,千万不要因为基础错过了自己心怡的公司。前端的基础知识杂且多,并不是理解就ok了,有些是真的要去记。当然了我们是牛x的前端工程师,每天像背英语单词一样去背知识点就没必要了,只要平时工作中多注意总结,面试前端刷下题目就可以了。什么?你问面试题资料在哪里,这不是就在你眼前吗(滑稽!**如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

2401_84093837的博客 1030

JavaScript 对象详解

JavaScript对象的概述 什么是对象,代表现实中的某个事物, 是该事物在编程中的抽象,多个数据的集合体(封装体),用于保存多个数据的容器 为什么要用对象,便于对多个数据进行统一管理 对象属于一种复合的数据类型,在对象中可以保存多个不同数据类型的属性。而对象的值就是引用类型的实例。 在javaScript 中引用类型是一种数据结构,用于将数据和功能组织在一起。它也常被称做为类,但 ja...

huangjianfeng21的博客 297
上一篇: JS中this的指向问题
下一篇: JS-函数详解
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值