mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2025-05-24 10:22:23 +00:00
docs(object): edit 简洁表示法
This commit is contained in:
parent
8870871023
commit
3baba14fbe
@ -4,7 +4,7 @@
|
||||
|
||||
## 属性的简洁表示法
|
||||
|
||||
ES6 允许直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。
|
||||
ES6 允许在大括号里面,直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。
|
||||
|
||||
```javascript
|
||||
const foo = 'bar';
|
||||
@ -15,7 +15,7 @@ baz // {foo: "bar"}
|
||||
const baz = {foo: foo};
|
||||
```
|
||||
|
||||
上面代码表明,ES6 允许在对象之中,直接写变量。这时,属性名为变量名, 属性值为变量的值。下面是另一个例子。
|
||||
上面代码中,变量`foo`直接写在大括号里面。这时,属性名就是变量名, 属性值就是变量值。下面是另一个例子。
|
||||
|
||||
```javascript
|
||||
function f(x, y) {
|
||||
@ -125,31 +125,24 @@ const cart = {
|
||||
}
|
||||
```
|
||||
|
||||
注意,简洁写法的属性名总是字符串,这会导致一些看上去比较奇怪的结果。
|
||||
简洁写法在打印对象时也很有用。
|
||||
|
||||
```javascript
|
||||
const obj = {
|
||||
class () {}
|
||||
let user = {
|
||||
name: 'test'
|
||||
};
|
||||
|
||||
// 等同于
|
||||
|
||||
var obj = {
|
||||
'class': function() {}
|
||||
let foo = {
|
||||
bar: 'baz'
|
||||
};
|
||||
|
||||
console.log(user, foo)
|
||||
// {name: "test"} {bar: "baz"}
|
||||
console.log({user, foo})
|
||||
// {user: {name: "test"}, foo: {bar: "baz"}}
|
||||
```
|
||||
|
||||
上面代码中,`class`是字符串,所以不会因为它属于关键字,而导致语法解析报错。
|
||||
|
||||
如果某个方法的值是一个 Generator 函数,前面需要加上星号。
|
||||
|
||||
```javascript
|
||||
const obj = {
|
||||
* m() {
|
||||
yield 'hello world';
|
||||
}
|
||||
};
|
||||
```
|
||||
上面代码中,`console.log`直接输出`user`和`foo`两个对象时,就是两组键值对,可能会混淆。把它们放在大括号里面输出,就变成了对象的简洁表示法,每组键值对前面会打印对象名,这样就比较清晰了。
|
||||
|
||||
## 属性名表达式
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user