跳至正文

ES6入门教程笔记(9)-对象的扩展

ES6对对象的扩展非常多,本文只介绍自己感兴趣的若干,需要完整的请阅读文末原文。

属性的简洁表示法

ES6允许直接写入变量和方法,作为对象的属性和方法。这种写法更加简洁。

let x = 1;
let name = 'root';

// ES5
let obj = { x:x, name:name }; // { x:1, name:"root"}

// ES6
let obj2 = { x, name }; // { x:1, name:"root" }

上面代码表明,ES6允许在对象中直接写变量,属性名作为变量名,属性值作为变量值。

除了属性简写,方法也可以简写。

// ES6
const obj = {
    print() {
        return "Hello";
    }
};

// 等同于

// ES5
const obj = {
    print: function() {
        return "Hello";
    }
}

属性的遍历

ES6有5种方法可以遍历对象的属性。

  • for...in
  • Object.keys(obj)
  • Object.getOwnPropertyNames(obj)
  • Object.getOwnPropertySymbols(obj)
  • Reflect.ownKeys(obj)

super关键字

ES6新增了一个关键字super,指向当前对象的原型对象。

let proto = {
    name: "proto",
};

let obj = {
    name: "hello",
    print() { cc.log(super.name);}
};

Object.setPrototypeOf(obj, proto);
obj.print() // "proto"

上面代码中,通过super.name引用了原型对象proto的name属性。

注:本文原始内容来自 ES6标准入门,有修改。

标签:

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注