Я использую параметр rest для выполнения некоторых операций, но некоторые свойства исчезли в результате.
Формат данных this.props
выглядит следующим образом:
```
this.props = {
data: [{...}, ...],
...
}
```
И я попытался сделать так:
```
let {showWaveAnimation, ...otherProps} = this.props;
console.log('data' in otherProps); // false
console.log('data' in this.props); //true
```
Почему свойство 'data' потеряно после попытки перезапуска?
Согласно MDN , я нашел описание:
остальные параметры - это только те, которым не было дано отдельное имя (то есть формально определенное в выражении функции), в то время как объект arguments содержит все аргументы, переданные функции;
Что означает separate name
здесь? Значит ли это, что свойства, исходящие от его прототипа, не будут покоем? Но после того, как я попробовал следующие утверждения, я получил тот же результат, я запутался.
```
class Parent {
constructor() {
this.props = {
data: '123',
};
}
}
class Child extends Parent {
constructor() {
super();
this.props.childProp = 'test';
let {test, ...otherProps} = this.props;
console.log('data' in this.props, 'data' in otherProps);
// true true
}
}
new Child();
```
Прежнее поведение кода, ненормальное после перехода Бабеля, может ли это быть проблемой с плагином Бабеля?
ДОБАВИТЬ: Я обнаружил, что эта концепция может быть более точной при описании моих операций rest
. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#Rest_in_Object_Destructuring