JavaScript: var {left, ...props} = this.props;
JavaScript: var {left, ...props} = this.props;
我正在阅读 Facebook 的固定数据的源代码-table,我发现 this
var {left, ...props} = this.props;
这是什么意思?这是一个新的语义吗?我很困惑o.O
它是一种特殊形式的解构赋值 proposed for ES7(并且急切地在 jsx 工具和 Babel 中实现)。它创建了两个变量:left
和 props
.
left
的值为 this.props.left
。
props
是一个对象,具有 this.props
的所有其他属性(不包括 left
)。
如果你在没有解构的情况下编写它,它看起来像这样:
var left = this.props.left;
var props = {};
Object.keys(this.props).forEach(function(key, index){
if (key !== 'left') {
props[key] = this.props[key];
}
}, this);
这比削掉的字符还多 :-)
我正在阅读 Facebook 的固定数据的源代码-table,我发现 this
var {left, ...props} = this.props;
这是什么意思?这是一个新的语义吗?我很困惑o.O
它是一种特殊形式的解构赋值 proposed for ES7(并且急切地在 jsx 工具和 Babel 中实现)。它创建了两个变量:left
和 props
.
left
的值为 this.props.left
。
props
是一个对象,具有 this.props
的所有其他属性(不包括 left
)。
如果你在没有解构的情况下编写它,它看起来像这样:
var left = this.props.left;
var props = {};
Object.keys(this.props).forEach(function(key, index){
if (key !== 'left') {
props[key] = this.props[key];
}
}, this);
这比削掉的字符还多 :-)