ES6学习7章:对象的扩展

对象属性和方法的简洁表示法

  • 在ES6中允许只写属性名,不写属性值,此时的属性值就是属性名对应的变量的值
var birth = '2000/01/01'
var person = {
    name:'张三',
    birth,//等同于 birth : birth
    hello(){console.log('hello world')}  // 等同于 hello:function(){...}
}

新的对象API

Object.is()
  • 判断两个值是否严格相等
  • 场景:在ES5中NaN是不等于自身的,可以通过Object.is()来判断
Object.is(+0,-0) //false   在ES5中两者相等
Object.is(NaN,NaN)  //true
Object.assign(target,source1,source2)
  • 用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)
  • 如果只有一个参数,则返回该参数
  • undefined和null不能做为参数,因为它们不能转成对象(作为首参数报错,做为source参数无值)
  • Object.assign()是浅拷贝,而不是深拷贝。(即:如果源对象某个属性的值是对象,那目标对象拷贝得到的是这个对象的引用)
  • 当target和source有同名属性时,会替换,而不是添加
var obj1 ={
    name:'haha',
    age:18
}
var obj2={}
Object.assign(obj2,obj1) // Object.assign(target,source1,source2,...)
# 浅拷贝
var obj1 ={a:{b:1}}
var obj2 = Object.assign({},obj1)
obj1.a.b=2;
obj2.a.b // 2
# 合并多外对象
var merge = (...sources)=>Object.assign({},...sources)
# 为类对象属性赋值
class Point{
    constructor(x,y){
        Object.assign(this,{x,y})
    }
}
# 设置初始值
let options = Object.assign({},DEFAULTS,options)

Object.assign的作用
1. 浅拷贝对象的属性和方法
2. 为类对象赋值
3. 设置对象属性指定默认值
4. 合并多个对象
5. 克隆对象

对象的遍历方法


  1. for…in

for…in 循环遍历对象自身的和继承的可枚举属性(不含Symbol属性)
  • Object.keys(obj)
    Object.keys返回一个数组,包括对象自身的(不含继承的)所有可枚举属性
  • Object.getOwnPropertyName(obj)
    返回一个数组,饮食对象所有属性
  • Object.getOwnPropertySymbols(obj)
    返回数组,饮食对象自身的所有Symbol属性
  • Reflect.ownKeys(obj)
    返回数组,饮食对象自身的所有属性(饮食Symbol属性和可枚举及不可枚举的)
对象属性获取API


  1. Object.keys()

返回key数组,获取对象的所有可遍历属性的键名,
  • Object.values()
    返回value数组,获取对象所有可遍历属性的值
  • Object.entries()
    返回[key,value]为元素的数组,获取对象所有可遍历属性的键值数组
Rest解构赋值

…运算符用于解构。对象的Rest解构赋值用于从一个对象取值,相当于将所有可遍历的、但尚未被读取的属性,分配到指定的对象上面。

注意点:
- Rest解构赋值必须是最后一个参数,否则会报错
- 解构赋值是浅拷贝
- 不会拷贝继承自原型对象的属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sophie_U

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值