• 对象的扩展


    1.对象的简洁表示
    2.属性表达式
    3.扩展运算符
    4.super关键字
    5.Object新增方法

    1.对象的简洁表示
    es5
    var name = "name";
    var age = 18;
    var person_es5 = {
        name:name,
        age:age,
        //定义方法
        intro:function(){
            console.log("my name is:"+name,"I am:"+age+"years old")
        }
    };
    console.log(person_es5)
    person_es5.intro();
    
    es6
    const person_es6 = {
        name,
        age,
        //定义方法简写
        intro(){
            console.log("my name is:"+name,"I am:"+age+"years old")
        }
    }
    console.log(person_es6);
    
    
    2.属性表达式
    es5
    var filedName = "sex";
    var obj = {
        //属性名是直接变成字符串,不会当作引用去查找值
        filedName:18
    }
    console.log(obj);//filedName:18
    
    es6
    const obj_es6 = {
        [filedName]:18
    }
    console.log(obj);//sex:18
    
    
    3.扩展运算符...
    let {a,b,d} = {a:'hello',b:'world',c:'mickey',d:'tom',e:'minnie'};
    console.log(a,b,d)//hello world tom
    
    let {a,b,...d} = {a:'hello',b:'world',c:'mickey',d:'tom',e:'minnie'};
    console.log(a,b,d)//hello world {c:'mickey',d:'tom',e:'minnie'}
    
    
    4.super关键字:指向当前对象的prototype对象
    const pro = {
        name:'tom'
    };
    const obj = {
        name:'mickey',
        getName(){
            console.log(this.name); //mickey
            console.log(super.name);//tom
        }
    };
    //将pro设置为obj的原型对象;即设置obj的原型为pro
    Object.setPrototypeOf(obj,pro)
    obj.getName();//tom
    
    
    5.Object新增方法
    a.Object(obj1,obj2):相当于===
    b.Object.assign(obj1,obj2):浅拷贝
    c.Object.setPrototypeOf(obj1,obj2) Object.getPrototypeOf(obj)
    d.Object.entries(obj) Object.keys(obj) Object.values(obj)
    
    let res = Object.is("tom","tom");
    console.log(res)                //true
    console.log("tom"==="tom");     //true
    
    let obj = {},obj2 = obj;
    console.log(Object.is(obj,obj2)) //true
    
    
    let obj1 = {name:"tom"};
    let obj2 = {age:19};
    Object.assign(obj1,obj2);
    console.log(obj1,obj2) //obj1:{name:"tom",age:19} obj2:{age:19}
    
    
    let obj = {
        name:"tom",
        age:18,
        sex:"man"
    }
    for(let key of Object.key(obj)){
        console.log(key);
    }
    for(let value of Object.values(obj)){
        console.log(value);
    }
    for(let [key,value] of Object.entries(obj)){
        console.log(key,value);
    }
  • 相关阅读:
    原创:搜索算法之两个数组取交集的算法
    原创:中文分词的逆向最大匹配算法
    搜索推荐系统根据用户搜索频率(热搜)排序
    原创:Solr Wiki 中关于Suggester(搜索推荐)的简单解读
    从海量文本中统计出前k个频率最高的词语
    原创:从海量数据中查找出前k个最小或最大值的算法(java)
    NOIWC2019 懵逼记
    BZOJ 4568: [Scoi2016]幸运数字(倍增+线性基)
    BZOJ 3207: 花神的嘲讽计划Ⅰ(莫队+哈希)
    BZOJ 3653: 谈笑风生(主席树)
  • 原文地址:https://www.cnblogs.com/lisa2544/p/15560777.html
Copyright © 2020-2023  润新知