zoukankan      html  css  js  c++  java
  • 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、属性名表达式与简洁表达式,不能同时使用,会报错。

  • 相关阅读:
    update语句
    java List和数组相互转换方法
    mysql查最大字符串
    Mybatis各种模糊查询
    mysql 递归查询父节点 和子节点
    String类型根据逗号分隔转为list
    This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its de 错误解决办法
    java中String数组和List的互相转化
    实现List集合中数据逆序排列
    String字符串去掉双引号
  • 原文地址:https://www.cnblogs.com/rickdiculous/p/13185464.html
Copyright © 2011-2022 走看看