ES6之 对象的扩展(四)

  • 属性的简洁表示法

    • 省略同名的属性值

    • 省略方法的function

    • 案例:属性简写

        //ES6 允许在对象中只写属性名,不写属性值。这时,属性值等于属性名所代表的变量
        //案例 1
        let foo = 'bar';
        let baz = {foo};
        console.log(baz);
        //等同于
        let baz = {foo: foo};
        
        //案例 2
        function f(x , y) {
            return {x, y};
        }
        console.log(f(1,2));
        //等同于
        function f(x , y) {
          return {x: x, y: y};
        }
      
    • 案例:方法简写

        let obj = {
          method(){
            return "Hello !";
          }
        };
        console.log(obj.method());
        //等同于
        let obj = {
          method: function(){
            return "Hello !";
          }
        };
      
    • 案例:综合实例

        let birth = '2000/01/01';
        let Persion = {
          name:'张三',
          //等同于 birth: birth
          birth,
          //等同于 hello: function(){}
          hello(){
            console.log('我的名字是:',this.birth);
          }
        };
        Persion.hello();
      
  • Object.assign

    • 将源对象的属性复制到目标对象上:Object.assign(target, source1, source2…)

      //Object.assign(target, source1, source2..)
      let obj = {name : 'kobe', age : 39, c: {d: 2}};
      let obj1 = {};
      Object.assign(obj1, obj);
      console.log(obj1, obj1.name);
      
  • __ proto__ 属性

    • ES6的__proto__可以的得到或者设置对象的prototype
      使用__proto__可以直接在对象表达式里面设置prototype

      //直接操作 __proto__ 属性
      let obj3 = {name : 'anverson', age : 41};
      let obj4 = {};
      obj4.__proto__ = obj3;
      console.log(obj4, obj4.name, obj4.age);
      
  • Object.is(v1, v2)

    • 判断2个数据是否完全相等

      console.log(Object.is('abc', 'abc'));//true
      console.log(Object.is(NaN, NaN));//true
      console.log(0 == -0);//true
      console.log(Object.is(0, -0));//false
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值