如何在条件运算符中读取IN关键字?

时间:2018-04-13 21:28:27

标签: javascript reactjs

偶然发现这段代码: var text = 'text' in this.props ? this.props.text : ''; 但即使我了解上下文,我也很难阅读这一特定的内容。它被描述为防御性代码,因为在React中它可以用getDefaultProps()方法替换

2 个答案:

答案 0 :(得分:2)

这是否有一个名为text的道具。如果是这样,三元组会说var text = this.props.text;。如果text中没有this.props,则三元组会说var text = '';。它是防御性代码,因为如果它不包含在道具中,它会使text成为字符串而不是undefined

答案 1 :(得分:0)

in运算符检查属性是否是对象的成员。

('text' in this.props) ≈≈ (Object.keys(this.props).includes('text'))

因此,代码段的作用是检查text中是否定义this.props,如果是,则返回,否则返回空String