JavaScript对象

@Javascript对象

对象概述

数组是一堆数据的集合,对象则是一堆键值对的集合。
在这里插入图片描述
两种写法
对象的写法有两种,一种是正常模式,如上。
另外一种则是严格写法[JSON写法],和第一个区别不大主要是所有的键名全部加上引号,单引双引都可以,然后最后一个键值对不加引号
严格写法的好处

  1. 能处理特殊的键名【如包含空格,中杠线,纯数字等键名】
  2. 可直接作为json文件内容,不用担心报错。

对象与Json字符串间的相互转换

JSON.stringify() 【处理前端数据,转换为字符串,发向后端】
如果要把一个对象真正的转换为一个字符串,需要使用方法:JSON.stringify(),这样得到的字符串我们称之为json字符串
此方法是Json对象的方法,而json对象是纯粹的键值对,不会包含方法等,所以此方法会自动的过滤掉对象中的方法
此方法接收三个参数,第一个参数是对象名,第二个是可以截取的对象键名,第三个是space。例如:
在这里插入图片描述
在这里插入图片描述
如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格,

JSON.parse()【处理后端数据,转换为js对象,用于前端渲染】
把json字符串转换为对象

symbol数据类型

独一无二的symbol
创建的Symbol类型的数据是独一无二的,它不会覆盖即使前面内容相同的Symbol类型的数据。
比如:
在这里插入图片描述

对象的合并

Object.assign(目标对象,…源对象):
将所有的源对象合并到目标对象,最后返回为对象;如果目标对象和源对象中出现的属性有相同的,后面的则会覆盖掉前面的。例如:
在这里插入图片描述

对象的拷贝

浅拷贝:
如果拷贝的值是直接数据类型,那么所拷贝的源对象的值与目标对象的值是相互独立的。如果拷贝的值是引用数据类型,那么所拷贝的是源对象的值的地址,任意改变其中一个值,另外一个值也会被改变。
在这里插入图片描述
深拷贝:
目标对象所拷贝的值和源对象的值是独立的。
在这里插入图片描述
另外一种方式:先将对象转换为字符串,再转回对象。JSON.stringify.()和JSON.parse();
这种方法有一个弊端就是加入源对象里面有一个方法,那么将会被省略。例如:
在这里插入图片描述

this指向

谁调用方法,this就指向谁。
修改this的指向有三种方式:
①call方法;②apply方法;③bind方法
例如:
在这里插入图片描述
而它们的不同点是:apply传入的参数必须是数组;bind不会立即执行,会返回一个函数。
例如:
在这里插入图片描述

对象的原型链

1.prototype属性
各个基本数据类型对象都一个prototype属性,来表示它的原型。这些类型的实例都可以继承它的prototype属性。
例如:
在这里插入图片描述
2.constructor与__proto__
constructor方法可以找到该实例的源数据类型,而__proto__可以找到该实例源数据类型的所有属性。
例如:
在这里插入图片描述
3.源型链
源型链可以分为两种:
①所有实例的源型是所属的基本数据类型(Object,Number,String,Boolean,Array或者自己创建的构造函数),这些数据类型最终的源型都是Object。
②这些基本数据类型都是由Function函数的实例,所以Function是最顶层的源型
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值