Skip to content

Commit 8ee83e2

Browse files
committed
docs(stdlib): add String
1 parent 1061084 commit 8ee83e2

3 files changed

Lines changed: 435 additions & 1 deletion

File tree

chapters.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
- stdlib/array.md: Array 对象
2727
- stdlib/wrapper.md: 包装对象
2828
- stdlib/boolean.md: Boolean 对象
29-
- stdlib/number.md: number 对象
29+
- stdlib/number.md: Number 对象
30+
- stdlib/string.md: String 对象
3031
- advanced/: 高级语法
3132
- advanced/strict.md: 严格模式

docs/stdlib/attributes.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -535,6 +535,7 @@ extend({}, {
535535
```javascript
536536
var extend = function (to, from) {
537537
for (var property in from) {
538+
if (!from.hasOwnProperty(property)) continue;
538539
Object.defineProperty(
539540
to,
540541
property,
@@ -549,6 +550,8 @@ extend({}, { get a(){ return 1 } })
549550
// { get a(){ return 1 } })
550551
```
551552

553+
上面代码中,`hasOwnProperty`那一行用来过滤掉继承的属性,否则会报错,因为`Object.getOwnPropertyDescriptor`读不到继承属性的属性描述对象。
554+
552555
## 控制对象状态
553556

554557
有时需要冻结对象的读写状态,防止对象被改变。JavaScript 提供了三种冻结方法,最弱的一种是`Object.preventExtensions`,其次是`Object.seal`,最强的是`Object.freeze`

0 commit comments

Comments
 (0)