美文网首页
扩展的对象功能

扩展的对象功能

作者: 云彩上的翅胖 | 来源:发表于2017-02-27 21:30 被阅读0次

    对象字面量语法的扩展

    属性初始化器的速记法

    function createPerson(name,age){
        return {
        //当对象字面量的属性只有名称时,JS引擎会在周边作用域查找同名变量,若找到,该变量的值会被赋值给对象字面量的同名属性。
            name,
            age
        }
    }
    

    方法简写

    var person={
        name:"NC",
        sayName() {
            return this.name;
        }
    }
    

    sayName方法被一个匿名函数赋值,并且能使用 super 。

    需计算属性名

    var suffix = " name";
    var person = {
        ["first" + suffix]:"NC";
        ["last" + suffix]:"NC";
    }
    

    新的方法

    Object.is()方法

    用于弥补全等运算符的怪异点。

    Object.is(NaN,NaN) //true
    Object.is(+0,-0)   //false
    

    Object.assign()方法

    Object.assign()方法接受任意数量的供应者,而接受者会按照供应者在参数中的顺序依次接受他们的属性。

    重复的对象字面量属性

    当存在重复的属性时,后一个会覆盖前一个。

    自有属性的枚举顺序

    1. 所有数字类型键,按升序进行排列。
    2. 所有字符串类型键,按添加顺序进行排列。
    3. 所有符号类型键,按顺序排列。

    更强大的原型

    修改对象的原型

    使用Object.setPrototypeOf(target,proto)可以修改对象的原型。

    使用super引用的简单原型访问

    super实际上相当于 Object.getPrototypeOf(this)的值。但super的值不是动态的,而是指向当前对象的原型的一个指针。

    只有使用简写的方法才能使用super

    正式的“方法”定义

    方法是一个拥有[[HomeObject]]内部属性的函数,此内部属性指向该方法所属的对象。

    相关文章

      网友评论

          本文标题: 扩展的对象功能

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