当前位置: 代码迷 >> 综合 >> ES6 day3
  详细解决方案

ES6 day3

热度:22   发布时间:2023-12-02 18:55:42.0
9) Promise对异步操作进行封装。状态:待定、成功、失败1) 构造函数let p = new Promise((resolve,reject)=>{})2) 静态方法Promise.xxx3) 实例方法Promise.prototype.xxxajax  GET /carousel/findAll HTTP/1.1Authorization:XXWEREAWFEWAFAEW
10) Symbol函数,无法使用new来调用,每次执行都可以产生式一个唯一的值(基本数据类型),这个值用来作为属性名。let s1 = Symbol()let s2 = "name"let obj = {[s1]:"terry",    // 神秘的唯一值:"terry"[s2]:"tom" ,     // name:"terry"s3:"jacky"       // s3 :"jacky"}obj[s1]obj.nameobj.s31. Symbol() 函数用来产生唯一值2. Symbol(flag) flag字符串,表示标识3. Symbol.for(flag)4. Object.getOwnPropertySymbols()可以获取某个对象中所有的symbol属性名5. 系统内置Symbol1) Symbol.hasInstance所有的构造函数都内置这么个方法,当instanceof的时候会调用let obj = {[ Symbol.hasInstance]:function(o){return false}}let o = {}{} instanceof obj;2) Symbol.iterator当迭代对象的时候会被调用 for-offor(let o of arr){}
11) 集合是对数组和对象的拓展1. Set不可以存放相同的值,不可以通过索引来访问。Set是一种特殊的maplet arr = [1,2,3,4,5,1,2,3]let arr = ['terry','larry']1) 构造函数new Set()2) 原型Set.prototype.sizeSet.prototype.add()Set.prototype.delete()Set.prototype.clear()Set.prototype.keys()Set.prototype.values()Set.prototype.entries()Set.prototype.forEach()2. Map键值对,键可以为任意数据类型;Map可以提供额外的api购物车(家政)goods id    name    pricefbm = {1   北京方便面  2}kqs = {2   怡宝矿泉水  2.5}let shopcar = new Map();shopcar.set(1,1)shopcar.set(2,3)如何将一个对象转换为map?1) 构造函数let map = new Map([[],[]])2) 原型方法
12) 代理1. 对象 setter/getterlet obj = {}    // 目标对象let proxy = new Proxy(obj, {    // 代理set(target,key,val){target[key] = val;},get(target,key){return target[key]}})proxy.name = 'terry'    // 面向代理使用2. 函数 applylet foo = function(msg){console.log(msg);}let proxy = new Proxy(foo, {apply(target,that,args){target.apply(that,args)}})3. 构造函数 constructorlet Person = function(name){this.name = name}let proxy = new Proxy(Person,{constructor(target,args){return new target(...args)}})