diff --git a/docs/object.md b/docs/object.md index 8f4aa2c..4ff75b6 100644 --- a/docs/object.md +++ b/docs/object.md @@ -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`两个对象时,就是两组键值对,可能会混淆。把它们放在大括号里面输出,就变成了对象的简洁表示法,每组键值对前面会打印对象名,这样就比较清晰了。 ## 属性名表达式