zoukankan      html  css  js  c++  java
  • ES6 - 对象

    ES6为对象带来的新特性。

    对象传统的写法:

    let person={

      'name':'Lily',

      'say':function(){

        alert('hello!');

      }

    }

    1、ES6中写法更简便

    对象属性:

    var name='Lily';

    var age='13';

    var person={name,age};

    console.log(person)     //{name:'Lily',age:'13'}

    对象方法:

    var person={

      say(){      //省略了function

        alert('hello');

      }

    }

    2、属性名可以为表达式

    当用字面量定义(用大括号{}定义)一个对象时,属性名或方法名可以是表达式。

    var f='first';

    var n='Name';

    var s='say';

    var h='Hello';

    var person={

      [f+n]:'Zhang',

      [s+h](){

        return 'hello world';

      }

    }

    console.log(person.firstName)   //'Zhang'

    console.log(person.sayHello())   //'hello world'

    3、ES6为对象新增的函数

    (1)Object.is()  :比较两个值是否严格相等。

    首先我们来区分什么是严格相等和抽象相等:

      var str='12';var num=12;

    • 严格相等   (要求变量类型也相同)

       str===num   //false

    • 抽象相等 (将两边变量转化为同一类型再比较)

        str==num   //true

    对于新增函数Object.is():Object.is(str,num)   //false

     

    (2)Object.assign() :将源对象的属性值赋值到目标对象。

      let target={'a':1};

      let origin={'b':2,'c':3};

      Object.assign(terget,orgin);

      console.log(target)       //{a:1,b:2,c:3}

    当源对象有与目标对象相同名字的属性时,会覆盖目标对象上的属性(后者覆盖前者);

    Object.assign()可以接受多个源对象参数:

      let origin2={'d':4,'a':5};

      Object.assign(terget,orgin,orgin2);

      console.log(target)       //{a:5,b:2,c:3,d:4}

     

    (3)Object.getPrototypeOf() :获取一个对象的prototype属性。

      function Person={

      }

        Person.prototype={

       say(){ console.log('hello'); }

      };

      let Lily=new Person();

      Lily.say();  //hello

    获取Lily的prototype属性: Object.getPrototypeOf(Lily)   //say:function(){ ...}

    可以实现继承:

     

    (4)Object.setPrototypeOf()  : 设置对象的prototype属性

    以(3)中的例子来说明:

      Object.setPrototypeOf(Lily,{

        say(){ console.log('hi') }

      })

      Lily.say()  //hi

     

    _______________________________

    参考:公众号 web前端教程

  • 相关阅读:
    软件架构师如何工作(即架构漫谈读后感)
    寒假学习记录22
    寒假学习记录21
    寒假学习记录20
    实验四 LL(1)语法分析
    大学生熬夜情况调查结果分析
    大学生熬夜情况调查计划
    实验三 递归下降分析分析法
    实验一 根据状态转换图手工构造词法扫描器
    《软件需求工程》阅读笔记06
  • 原文地址:https://www.cnblogs.com/telnetzhang/p/5727076.html
Copyright © 2011-2022 走看看