Skip to content

Commit ddf44bb

Browse files
committed
docs(object): edit 属性描述对象 wangdoc#41
1 parent e70963e commit ddf44bb

File tree

2 files changed

+17
-17
lines changed

2 files changed

+17
-17
lines changed

docs/basic/grammar.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ var a;
5858
a = 1;
5959
```
6060

61-
如果只是声明变量而没有赋值,则该变量的值是`undefined``undefined`是一个 JavaScript 关键字,表示“无定义”。
61+
如果只是声明变量而没有赋值,则该变量的值是`undefined``undefined`是一个特殊的值,表示“无定义”。
6262

6363
```javascript
6464
var a;

docs/stdlib/attributes.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ JavaScript 提供了一个内部数据结构,用来描述对象的属性,控
4545

4646
## Object.getOwnPropertyDescriptor()
4747

48-
`Object.getOwnPropertyDescriptor`方法可以获取属性描述对象。它的第一个参数是一个对象,第二个参数是一个字符串,对应该对象的某个属性名
48+
`Object.getOwnPropertyDescriptor()`方法可以获取属性描述对象。它的第一个参数是目标对象,第二个参数是一个字符串,对应目标对象的某个属性名
4949

5050
```javascript
5151
var obj = { p: 'a' };
@@ -58,9 +58,9 @@ Object.getOwnPropertyDescriptor(obj, 'p')
5858
// }
5959
```
6060

61-
上面代码中,`Object.getOwnPropertyDescriptor`方法获取`obj.p`的属性描述对象。
61+
上面代码中,`Object.getOwnPropertyDescriptor()`方法获取`obj.p`的属性描述对象。
6262

63-
注意,`Object.getOwnPropertyDescriptor`方法只能用于对象自身的属性,不能用于继承的属性。
63+
注意,`Object.getOwnPropertyDescriptor()`方法只能用于对象自身的属性,不能用于继承的属性。
6464

6565
```javascript
6666
var obj = { p: 'a' };
@@ -69,7 +69,7 @@ Object.getOwnPropertyDescriptor(obj, 'toString')
6969
// undefined
7070
```
7171

72-
上面代码中,`toString``Obj`对象继承的属性,`Object.getOwnPropertyDescriptor`无法获取。
72+
上面代码中,`toString``obj`对象继承的属性,`Object.getOwnPropertyDescriptor()`无法获取。
7373

7474
## Object.getOwnPropertyNames()
7575

@@ -108,17 +108,17 @@ Object.getOwnPropertyNames(Object.prototype)
108108

109109
## Object.defineProperty(),Object.defineProperties()
110110

111-
`Object.defineProperty`方法允许通过属性描述对象,定义或修改一个属性,然后返回修改后的对象,它的用法如下。
111+
`Object.defineProperty()`方法允许通过属性描述对象,定义或修改一个属性,然后返回修改后的对象,它的用法如下。
112112

113113
```javascript
114114
Object.defineProperty(object, propertyName, attributesObject)
115115
```
116116

117117
`Object.defineProperty`方法接受三个参数,依次如下。
118118

119-
- 属性所在的对象
120-
- 属性名(它应该是一个字符串)
121-
- 属性描述对象
119+
- object:属性所在的对象
120+
- propertyName:字符串,表示属性名
121+
- attributesObject:属性描述对象
122122

123123
举例来说,定义`obj.p`可以写成下面这样。
124124

@@ -136,11 +136,11 @@ obj.p = 246;
136136
obj.p // 123
137137
```
138138

139-
上面代码中,`Object.defineProperty`方法定义了`obj.p`属性。由于属性描述对象的`writable`属性为`false`,所以`obj.p`属性不可写。注意,这里的`Object.defineProperty`方法的第一个参数是`{}`(一个新建的空对象),`p`属性直接定义在这个空对象上面,然后返回这个对象,这是`Object.defineProperty`的常见写法
139+
上面代码中,`Object.defineProperty()`方法定义了`obj.p`属性。由于属性描述对象的`writable`属性为`false`,所以`obj.p`属性不可写。注意,这里的`Object.defineProperty`方法的第一个参数是`{}`(一个新建的空对象),`p`属性直接定义在这个空对象上面,然后返回这个对象,这是`Object.defineProperty()`的常见用法
140140

141-
如果属性已经存在,`Object.defineProperty`方法相当于更新该属性的属性描述对象。
141+
如果属性已经存在,`Object.defineProperty()`方法相当于更新该属性的属性描述对象。
142142

143-
如果一次性定义或修改多个属性,可以使用`Object.defineProperties`方法。
143+
如果一次性定义或修改多个属性,可以使用`Object.defineProperties()`方法。
144144

145145
```javascript
146146
var obj = Object.defineProperties({}, {
@@ -157,7 +157,7 @@ obj.p2 // "abc"
157157
obj.p3 // "123abc"
158158
```
159159

160-
上面代码中,`Object.defineProperties`同时定义了`obj`对象的三个属性。其中,`p3`属性定义了取值函数`get`,即每次读取该属性,都会调用这个取值函数。
160+
上面代码中,`Object.defineProperties()`同时定义了`obj`对象的三个属性。其中,`p3`属性定义了取值函数`get`,即每次读取该属性,都会调用这个取值函数。
161161

162162
注意,一旦定义了取值函数`get`(或存值函数`set`),就不能将`writable`属性设为`true`,或者同时定义`value`属性,否则会报错。
163163

@@ -181,7 +181,7 @@ Object.defineProperty(obj, 'p', {
181181

182182
上面代码中,同时定义了`get`属性和`value`属性,以及将`writable`属性设为`true`,就会报错。
183183

184-
`Object.defineProperty()``Object.defineProperties()`的第三个参数,是一个属性对象。它的`writable``configurable``enumerable`这三个属性的默认值都为`false`
184+
`Object.defineProperty()``Object.defineProperties()`参数里面的属性描述对象,`writable``configurable``enumerable`这三个属性的默认值都为`false`
185185

186186
```javascript
187187
var obj = {};
@@ -195,11 +195,11 @@ Object.getOwnPropertyDescriptor(obj, 'foo')
195195
// }
196196
```
197197

198-
上面代码中,定义`obj.p`时用了一个空的属性描述对象,就可以看到各个元属性的默认值。
198+
上面代码中,定义`obj.foo`时用了一个空的属性描述对象,就可以看到各个元属性的默认值。
199199

200200
## Object.prototype.propertyIsEnumerable()
201201

202-
实例对象的`propertyIsEnumerable`方法返回一个布尔值,用来判断某个属性是否可遍历。
202+
实例对象的`propertyIsEnumerable()`方法返回一个布尔值,用来判断某个属性是否可遍历。注意,这个方法只能用于判断对象自身的属性,对于继承的属性一律返回`false`
203203

204204
```javascript
205205
var obj = {};
@@ -209,7 +209,7 @@ obj.propertyIsEnumerable('p') // true
209209
obj.propertyIsEnumerable('toString') // false
210210
```
211211

212-
上面代码中,`obj.p`是可遍历的,而继承自原型对象的`obj.toString`属性是不可遍历的
212+
上面代码中,`obj.p`是可遍历的,`obj.toString`是继承的属性
213213

214214
## 元属性
215215

0 commit comments

Comments
 (0)