美文网首页
浅学es6对象的扩展

浅学es6对象的扩展

作者: yfsola | 来源:发表于2017-12-01 16:24 被阅读0次

    1.属性的简介表示法

    const foo ='bar' 

    const baz = {foo}

    baz //{foo:'bar'}

    //等同于baz = {foo:foo}

    2.属性名表达式

    let lastWord ='last word'

    const a= {

    'first word':'hello',   

     [lastWord]:'world'} 

    a['first word']

    }

    // 'hello'a[lastWord]

    // 'world'a['last word']

    // 'world'

    注意属性名表达式于简介表达式,不能同时使用

    //报错 

    const foo ='bar' 

    const bar ='abc' 

    const baz = {[foo]}

    //正确

    const foo ='bar';

    const baz = {[foo]:'abc'}

    3.方法name属性

    函数name属性,返回函数名

    4.Object.is()

    比较两个值是否严格相等,相当于(===)

    5.Object.assign()

    用于对象的合并

    const target ={a:1}

    const source1 ={b:2} 

    const source2 ={c:3}

    Object.assign(target,source1,source2)

    target//{a:1,b:2,c:3}

    注意如果目标对象与源对象有同名属性,或多个源对象有同名属性,则后面的属性会覆盖前面的属性

    克隆对象

    function clone(origin) { returnObject.assign({},origin); }

    属性的遍历 ES6一共有五种方法可以遍历对象的属性

    (1)for ... in

    循环遍历对象自身和继承的可枚举属性

    (2)Object.keys(obj)

    返回一个数组,包括对象自身的(不可继承的)所有可枚举属性(不含Symbol属性)的键名

    (3)Object.getOwnPropertyNames(obj)

    返回一个数组,包含对象自身的所有属性(不含 Symbol 属性,但是包括不可枚举属性)的键名。

    (4)Object.getOwnPropertySymbols(obj)

    返回一个数组,包含对象自身的所有 Symbol 属性的键名。

    Reflect.ownKeys(obj)

    返回一个数组,包含对象自身的所有键名,不管键名是 Symbol 或字符串,也不管是否可枚举。

    4.__proto__属性,Object.setPrototypeOf(),Object.getPrototypeOf()

    下面代码将proto对象设为obj对象的原型,所以obj对象可以读取proto对象的属性

    let proto = {}

    let obj = {x:10}

    Object.setPrototypeOf(obj,proto);

    proto.y =20

    proto.z =40

    obj.x// 10

    obj.y// 20

    obj.z// 40

    5.super关键字

    关键字super,指向当前对象的原型对象

    注意super关键字表示原型对象是,之恩给你用在对象的方法之中,用在其他地方都会报错

    相关文章

      网友评论

          本文标题:浅学es6对象的扩展

          本文链接:https://www.haomeiwen.com/subject/ljewbxtx.html