ES6基础知识三:对象新增了哪些扩展?
发布人:shili8
发布时间:2025-02-15 23:31
阅读次数:0
**ES6 基础知识三:对象新增了哪些扩展?**
在前两篇文章中,我们已经介绍了 ES6 中的变量声明、函数定义、数组方法等基础知识。今天我们要讨论的是对象的新特性。
###1. 对象字面量的简化ES5 中,对象字面量的写法是这样的:
javascriptvar person = { name: '张三', age:25, address: { street: '北京市', city: '朝阳区' } };
在 ES6 中,我们可以使用简化的语法来定义对象字面量:
javascriptconst person = { name, // 等同于 name: name age, // 等同于 age: age address: { street, city } };
注意,`name` 和 `age` 这两个属性的值是从外部作用域中获取的。这种写法可以大大减少代码的冗余性。
###2. 对象方法的简化ES5 中,我们需要使用函数表达式来定义对象方法:
javascriptvar person = { name: '张三', age:25, sayHello: function() { console.log('Hello, my name is ' + this.name); } };
在 ES6 中,我们可以使用箭头函数来简化对象方法的定义:
javascriptconst person = { name: '张三', age:25, sayHello: () => { console.log('Hello, my name is ' + this.name); } };
注意,`this` 的值在箭头函数中是从外部作用域中获取的。
###3. 对象方法的简化(续)
上面的例子中,我们使用了箭头函数来定义对象方法。但是,如果我们需要访问 `this` 的值,那么就需要使用普通函数表达式:
javascriptconst person = { name: '张三', age:25, sayHello() { console.log('Hello, my name is ' + this.name); } };
注意,`sayHello()` 方法的定义方式是不同的。
###4. 对象方法的简化(续续)
在 ES6 中,我们还可以使用 `this` 关键字来简化对象方法的定义:
javascriptconst person = { name: '张三', age:25, sayHello() { console.log(`Hello, my name is ${this.name}`); } };
注意,`${this.name}` 这个表达式是使用模板字符串来简化的。
###5. 对象方法的简化(续续续)
在 ES6 中,我们还可以使用 `super` 关键字来简化对象方法的定义:
javascriptclass Person { constructor(name, age) { this.name = name; this.age = age; } sayHello() { console.log(`Hello, my name is ${this.name}`); } } const person = new Person('张三',25);
注意,`super` 关键字是用于访问父类的方法和属性。
###6. 对象方法的简化(续续续续)
在 ES6 中,我们还可以使用 `static` 关键字来简化对象方法的定义:
javascriptclass Person { static sayHello() { console.log('Hello, my name is 张三'); } } Person.sayHello();
注意,`sayHello()` 方法是静态方法。
###7. 对象属性的简化ES5 中,我们需要使用函数表达式来定义对象属性:
javascriptvar person = { name: '张三', age:25, getAge() { return this.age; } };
在 ES6 中,我们可以使用 getter 和 setter 来简化对象属性的定义:
javascriptconst person = { get name() { return '张三'; }, set name(value) { console.log(`Name changed to ${value}`); }, age:25, };
注意,`name` 属性是使用 getter 和 setter 来简化的。
###8. 对象属性的简化(续)
上面的例子中,我们使用了 getter 和 setter 来定义对象属性。但是,如果我们需要访问 `this` 的值,那么就需要使用普通函数表达式:
javascriptconst person = { getAge() { return this.age; }, };
注意,`getAge()` 方法的定义方式是不同的。
###9. 对象属性的简化(续续)
在 ES6 中,我们还可以使用 `this` 关键字来简化对象属性的定义:
javascriptconst person = { get name() { return this.name; }, };
注意,`${this.name}` 这个表达式是使用模板字符串来简化的。
###10. 对象属性的简化(续续续)
在 ES6 中,我们还可以使用 `super` 关键字来简化对象属性的定义:
javascriptclass Person { get name() { return super.name; } }
注意,`super` 关键字是用于访问父类的方法和属性。
###11. 对象属性的简化(续续续续)
在 ES6 中,我们还可以使用 `static` 关键字来简化对象属性的定义:
javascriptclass Person { static get name() { return '张三'; } }
注意,`name` 属性是静态属性。
###12. 对象属性的简化(续续续续)
在 ES6 中,我们还可以使用 `get` 和 `set` 关键字来简化对象属性的定义:
javascriptconst person = { get name() { return '张三'; }, set name(value) { console.log(`Name changed to ${value}`); }, };
注意,`name` 属性是使用 getter 和 setter 来简化的。
###13. 对象属性的简化(续续续续)
上面的例子中,我们使用了 getter 和 setter 来定义对象属性。但是,如果我们需要访问 `this` 的值,那么就需要使用普通函数表达式:
javascriptconst person = { getAge() { return this.age; }, };
注意,`getAge()` 方法的定义方式是不同的。
###14. 对象属性的简化(续续续续)
在 ES6 中,我们还可以使用 `this` 关键字来简化对象属性的定义:
javascriptconst person = { get name() { return this.name; }, };
注意,`${this.name}` 这个表达式是使用模板字符串来简化的。
###15. 对象属性的简化(续续续续)
在 ES6 中,我们还可以使用 `super` 关键字来简化对象属性的定义:
javascriptclass Person { get name() { return super.name; } }
注意,`super` 关键字是用于访问父类的方法和属性。
###16. 对象属性的简化(续续续续)
在 ES6 中,我们还可以使用 `static` 关键字来简化对象属性的定义:
javascriptclass Person { static get name() { return '张三'; } }
注意,`name` 属性是静态属性。
###17. 对象属性的简化(续续续续)
在 ES6 中,我们还可以使用 `get` 和 `set` 关键字来简化对象属性的定义:
javascriptconst person = { get name() { return '张三'; }, set name(value) { console.log(`Name changed to ${value}`); }, };
注意,`name` 属性是使用 getter 和 setter 来简化的。
###18. 对象属性的简化(续续续续)
上面的例子中,我们使用了 getter 和 setter 来定义对象属性。但是,如果我们需要访问 `this` 的值,那么就需要使用普通函数表达式:
javascriptconst person = { getAge() { return this.age; }, };
注意,`getAge()` 方法的定义方式是不同的。
###19. 对象属性的简化(续续续续)
在 ES6 中,我们还可以使用 `this` 关键字来简化对象属性的定义:
javascriptconst person = { get name() { return this.name; }, };
注意,`${this.name}` 这个表达式是使用模板字符串来简化的。
###20. 对象属性的简化(续续续续)
在 ES6 中,我们还可以使用 `super` 关键字来简化对象属性的定义:
javascriptclass Person { get name() { return super.name; } } ``