1
0
mirror of https://github.com/ruanyf/es6tutorial.git synced 2025-05-28 21:32:20 +00:00

docs(object): edit 对象的扩展运算符

This commit is contained in:
ruanyf 2022-04-09 20:38:45 +08:00
parent e856f9e4cb
commit 95e2e79219

View File

@ -606,6 +606,23 @@ foo
// {0: "h", 1: "e", 2: "l", 3: "l", 4: "o"}
```
对象的扩展运算符,只会返回参数对象自身的、可枚举的属性,这一点要特别小心,尤其是用于类的实例对象时。
```javascript
class C {
p = 12;
m() {}
}
let c = new C();
let clone = { ...c };
clone.p; // ok
clone.m(); // 报错
```
上面示例中,`c``C`类的实例对象,对其进行扩展运算时,只会返回`c`自身的属性`c.p`,而不会返回`c`的方法`c.m()`,因为这个方法定义在`C`的原型对象上(详见 Class 的章节)。
对象的扩展运算符等同于使用`Object.assign()`方法。
```javascript