diff --git a/docs/stdlib/attributes.md b/docs/stdlib/attributes.md index f1f3af6..cad729f 100644 --- a/docs/stdlib/attributes.md +++ b/docs/stdlib/attributes.md @@ -33,7 +33,7 @@ JavaScript 提供了一个内部数据结构,用来描述对象的属性,控 (4)`configurable` -`configurable`是一个布尔值,表示可配置性,默认为`true`。如果设为`false`,将阻止某些操作改写该属性,比如无法删除该属性,也不得改变该属性的属性描述对象(`value`属性除外)。也就是说,`configurable`属性控制了属性描述对象的可写性。 +`configurable`是一个布尔值,表示属性的可配置性,默认为`true`。如果设为`false`,将阻止某些操作改写属性描述对象,比如无法删除该属性,也不得改变各种元属性(`value`属性除外)。也就是说,`configurable`属性控制了属性描述对象的可写性。 (5)`get` @@ -350,7 +350,7 @@ JSON.stringify(obj) // "{}" ### configurable -`configurable`(可配置性)返回一个布尔值,决定了是否可以修改属性描述对象。也就是说,`configurable`为`false`时,`value`、`writable`、`enumerable`和`configurable`都不能被修改了。 +`configurable`(可配置性)返回一个布尔值,决定了是否可以修改属性描述对象。也就是说,`configurable`为`false`时,`writable`、`enumerable`和`configurable`都不能被修改了。 ```javascript var obj = Object.defineProperty({}, 'p', { @@ -360,9 +360,6 @@ var obj = Object.defineProperty({}, 'p', { configurable: false }); -Object.defineProperty(obj, 'p', {value: 2}) -// TypeError: Cannot redefine property: p - Object.defineProperty(obj, 'p', {writable: true}) // TypeError: Cannot redefine property: p @@ -371,11 +368,14 @@ Object.defineProperty(obj, 'p', {enumerable: true}) Object.defineProperty(obj, 'p', {configurable: true}) // TypeError: Cannot redefine property: p + +Object.defineProperty(obj, 'p', {value: 2}) +// TypeError: Cannot redefine property: p ``` -上面代码中,`obj.p`的`configurable`为`false`。然后,改动`value`、`writable`、`enumerable`、`configurable`,结果都报错。 +上面代码中,`obj.p`的`configurable`属性为`false`。然后,改动`writable`、`enumerable`、`configurable`,结果都报错。 -注意,`writable`只有在`false`改为`true`会报错,`true`改为`false`是允许的。 +注意,`writable`属性只有在`false`改为`true`时会报错,`true`改为`false`是允许的。 ```javascript var obj = Object.defineProperty({}, 'p', { @@ -387,7 +387,7 @@ Object.defineProperty(obj, 'p', {writable: false}) // 修改成功 ``` -至于`value`,只要`writable`和`configurable`有一个为`true`,就允许改动。 +`value`属性的情况比较特殊。只要`writable`和`configurable`有一个为`true`,就允许改动`value`。 ```javascript var o1 = Object.defineProperty({}, 'p', { @@ -409,7 +409,7 @@ Object.defineProperty(o2, 'p', {value: 2}) // 修改成功 ``` -另外,`writable`为`false`时,直接目标属性赋值,不报错,但不会成功。 +另外,`writable`为`false`时,直接对目标属性赋值,不报错,但不会成功。 ```javascript var obj = Object.defineProperty({}, 'p', { diff --git a/package-lock.json b/package-lock.json index f76e307..b435362 100644 --- a/package-lock.json +++ b/package-lock.json @@ -526,9 +526,9 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, "gh-pages": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-3.1.0.tgz", - "integrity": "sha512-3b1rly9kuf3/dXsT8+ZxP0UhNLOo1CItj+3e31yUVcaph/yDsJ9RzD7JOw5o5zpBTJVQLlJAASNkUfepi9fe2w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-3.2.0.tgz", + "integrity": "sha512-VQTwyRtxoaId0YmDXdC/G854dojpwTuOdpZUL3PGG6WQZvSoGVD8ggedKARZltixIREMezoDywE+g3g2paLxPw==", "requires": { "async": "^2.6.1", "commander": "^2.18.0", @@ -548,9 +548,9 @@ } }, "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", diff --git a/package.json b/package.json index 0713b02..fbb7e46 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ }, "homepage": "https://github.com/wangdoc/javascript-tutorial", "dependencies": { - "gh-pages": "^3.1.0", + "gh-pages": "^3.2.0", "husky": "^4.3.8", "loppo": "^0.6.23", "loppo-theme-wangdoc": "^0.5.2"