es6学习笔记3-Reflect、static、Set、Map、Symbol

1.Reflect

  一个静态对象,类似于Math,提供了一系列操作对象的方法,实际上是Proxy内部方法的默认实现,以前操作对象的方法不统一,使用时可能一会用Object的方法,一会用操作符,而Reflect提供了统一的操作方式。

Reflect对象一共有 13 个静态方法。

  • Reflect.apply(target, thisArg, args)
  • Reflect.construct(target, args)
  • Reflect.get(target, name, receiver)
  • Reflect.set(target, name, value, receiver)
  • Reflect.defineProperty(target, name, desc)
  • Reflect.deleteProperty(target, name)
  • Reflect.has(target, name)
  • Reflect.ownKeys(target)
  • Reflect.isExtensible(target)
  • Reflect.preventExtensions(target)
  • Reflect.getOwnPropertyDescriptor(target, name)
  • Reflect.getPrototypeOf(target)
  • Reflect.setPrototypeOf(target, prototype)

具体方法说明:

https://es6.ruanyifeng.com/#docs/reflect

2.class static

    类相当于实例的原型,所有在类中定义的方法,都会被实例继承。如果在一个方法前,加上static关键字,就表示该方法不会被实例继承,而是直接通过类来调用,这就称为“静态方法”。

 

3.Set\Map数据结构

    都是新定义的数据结构类型,Set的特点里面是无重复的值,提供了一系列方法操作Set结构,如add,has,value等,常用于数组、伪数组去重。

   Map是提供了一种真正意义上的键值对类型,以前js中的对象键名只能是字符串类型,如果我们用复杂的数据类型作为键名会引起一系列的问题,因为对其操作的时候键名都会转换为字符串,而Map允许创建任意类型的键名,真正意义上提供了键与值的映射关系。

 具体使用方法见:https://es6.ruanyifeng.com/#docs/set-map

 

4.Symbol

  新增的数据类型,作用是为对象提供独一无二的属性名,例如

const name = Symbol()
const person = {
    [name]:'cloudgapes',
    say(){
        console.log('hello'+this[name]);
    }
}
person.say()
console.log(typeof name);

//打印结果
hellocloudgapes
symbol

一般用于避免对象属性的重复、定义对象私有成员。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值