• ES6扩展——对象的扩展(简洁表示法与属性名表达式)


    1、简洁表达法。

    当属性名与属性值相同时,可省略属性值;例如:{name : name}可以写成 {name}

    属性方法中,可省略冒号与function,直接 属性名(){}即可。例如{say : function(arr){}}可以写成{say(arr){}}

    es5的写法:

                //es5:
                const getUserInfo = (id = 1) => {
                    //ajax ...
                    const name = 'xiaoming';
                    const age = 10;
                    
                    return{
                        name: name,
                        age: age,
                        say: function(){
                            console.log(this.name + this.age);
                        }
                    };
                };
                const xiaoming = getUserInfo();

    es6的写法:

                //es6:
                const getUserInfo1 = (id = 1) => {
                    //ajax ...
                    const name = 'xiaoming';
                    const age = 10;
                    return{
                        name,
                        age,
                        say(){
                            console.log(this.name + this.age);
                        }
                    };
                };
                const xiaoming1 = getUserInfo();
                

    2、属性名表达式。

    可以将声明的变量用中括号 [] 包裹,作为属性名。也可以是表达式或模板字符串。

                const obj = {
                    a:1,
                    $abc:2,
                    'aflajroi23#$T':3  //不符合命名规范时要用单引号或者双引号括起来,否则报错
                };
                console.log(obj.a);  //1
                console.log(obj.$abc);  //2
                console.log(obj['aflajroi23#$T']);  //3,要用中括号将带引号的属性名括起来才可以得到属性值,否则报错
                

    属性名表达式的三种写法

     (1)、['变量名']
    (2)、简单的表达式: ['xxx'+'yyy'+123],属性名为xxxyyy123
    (3)、模板字符串:[`${变量名}123`],属性名为变量名123
                const key = 'age';
                const xiaohong = {
                    name:'xiaohong',
                    //属性名表达式的三种写法
                    [key]:14,
                    ['abc'+'bbc'+123]:23 ,  //简单的表达式,该属性名为abcbbc123
                    [`${key}123`]:34  //模板字符串,该属性名为age123
                }

    3、属性名表达式与简洁表达式,不能同时使用,会报错。

  • 相关阅读:
    十三周课程总结
    第十二周课程总结
    第十一周课程总结
    第十周java总结
    第九周课程总结&实验报告(七)
    第八周课程报告&&实验报告六
    第七次学习总结&&第五次实验报告
    第六次学习总结&&第四次实验总结
    同余&逆元简单总结
    原根&离散对数简单总结
  • 原文地址:https://www.cnblogs.com/rickdiculous/p/13185464.html
Copyright © 2020-2023  润新知