From 3baba14fbe199482be75f6faa9ab560e6dd79f7c Mon Sep 17 00:00:00 2001 From: ruanyf Date: Sat, 7 Sep 2019 13:19:15 +0800 Subject: [PATCH] =?UTF-8?q?docs(object):=20edit=20=E7=AE=80=E6=B4=81?= =?UTF-8?q?=E8=A1=A8=E7=A4=BA=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/object.md | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) 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`两个对象时,就是两组键值对,可能会混淆。把它们放在大括号里面输出,就变成了对象的简洁表示法,每组键值对前面会打印对象名,这样就比较清晰了。 ## 属性名表达式