docs(stdlib/attribute): fixed #226 edit configurable

This commit is contained in:
ruanyf
2021-07-14 16:26:05 +08:00
parent 9ca16cd973
commit bae4e98c83
3 changed files with 16 additions and 16 deletions

View File

@@ -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', {

12
package-lock.json generated
View File

@@ -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",

View File

@@ -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"