JavaScript:var {left,... props} = this.props;

时间:2015-02-16 04:02:31

标签: javascript reactjs ecmascript-6

我正在阅读Facebook的固定数据表的源代码,我发现this

var {left, ...props} = this.props;

这意味着什么?这是一个新的语义?我很困惑o.O

1 个答案:

答案 0 :(得分:16)

它是一种特殊形式的解构赋值proposed for ES7(并且在jsx工具和Babel中热切地实现)。它创建了两个变量:leftprops

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);

除了几个字符之外: - )