zoukankan      html  css  js  c++  java
  • es6+最佳入门实践(5)

    5.对象扩展

    5.1.对象简写

    在es5中,有这样一种写法

    var name = "xiaoqiang";
    var age = 12;
    var obj = {
        name : name,
        age : age
    }
    

    在es6中,我们可以简写成这样一种形式

    let name = "xiaoqiang";
    let age = 12;
    let obj = {
        name,
        age
    }
    

    以上只是属性的简写,如果有方法应该怎么写呢?首先我们来回顾一下es5中的写法

    var obj = {
        show: function(){
            alert(1)
        }
    }
    

    在es6中我们可以简写成下面的形式

    var obj = {
        show(){
            alert(1)
        }
    }
    

    5.2.属性名表达式

    属性名表达式意思就是说在es6中可以把属性写成一个表达式的形式,在es5中我们写属性名的时候,都是固定不变的

    var obj = {
        name: "xiaoqiang",
        age: 19
    }
    //其中name和age是不变的固定写法
    

    在es6中,支持属性名用一个表达式来表示,属性名可以是一个变量

    let a = 'username';
    let b = 'age';
    
    let obj = {
        [a]:"admin",
        [b+'1']:19
    }
    console.log(obj)
    

    5.3.扩展运算符

    扩展运算符我们在前面接触过,用三个点表示(...),ES2018 将这个运算符引入了对象。

    let {a,b,...c} = {c:1,b:2,a:3,d:4};
    console.log(a, b, c)  //3 2 {c: 1, d: 4}
    

    5.4.Object新增方法

    1. Object.is()

    这个方法用来比较两个值是否严格相等,与严格比较运算符(===)的行为基本一致

    console.log(Object.is('a', 'a'))  //true
    console.log(Object.is({},{})) //false
    
    //和(===)不一样的是 解决NaN不等于自身的问题
    console.log(NaN === NaN)  //false
    console.log(Object.is(NaN, NaN))
    
    1. Object.assign()

    这个方法用来合并对象

    let obj1 = {a: 1};
    let obj2 = {b: 2};
    let obj3 = {c: 3};
    console.log(Object.assign({}, obj1, obj2, obj3)) //{a: 1, b: 2, c: 3}
    
    

    视频教程地址:http://edu.nodeing.com/course/50

  • 相关阅读:
    wpf 命令
    wpf 事件
    wpf 依赖属性介绍
    wpf binging (六)多绑定
    ISI的晶圆级MRAM测试仪
    常见存储器分类
    存储器SDRAM简要历史
    当前MRAM市场以及专用MRAM设备测试的重要性
    IPUS SQPI PSRAM为STM32单片机提供RAM扩展方案
    单端口SRAM与双端口SRAM电路结构
  • 原文地址:https://www.cnblogs.com/dadifeihong/p/10358117.html
Copyright © 2011-2022 走看看