请原谅noobie问题,但是当我浏览本机文档时,常规javascript存在语法差异。我试图找出描述语法的文档。
例如这句话
var {
ActivityIndicatorIOS,
StyleSheet,
View,
} = React
使用=>
中的运算符 setToggleTimeout: function() {
this.setTimeout(
() => {
this.setState({animating: !this.state.animating});
this.setToggleTimeout();
},
1200
);
},
答案 0 :(得分:4)
这些是ECMAScript 6功能
你的第一个例子是解构分配
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
第二个是箭头功能
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
答案 1 :(得分:4)
上面接受的答案是正确的,但这里有一些例子:
首先:ES6解构的一个例子:
var {
ActivityIndicatorIOS,
StyleSheet,
View,
} = React
完全类似于:
var ActivityIndicatorIOS = React.ActivityIndicatorIOS;
var StyleSheet = React.StyleSheet;
var View = React.View;
这是一个很好的速记方法。当然,解构比这更强大,Mozilla文档提供了更多的例子。
2nd:ES6箭头功能(或胖箭头功能)的一个例子
setToggleTimeout: function() {
this.setTimeout(
() => {
this.setState({animating: !this.state.animating});
this.setToggleTimeout();
},
1200
);
},
优点是编写的代码较少,但一个关键的区别在于,在箭头函数中,这个'这个'是这样的'这个'作为它所写的上下文。换句话说,你不必再使用bind()了。
过去的糟糕日子:
setToggleTimeout: function() {
this.setTimeout(
function() {
this.setState({animating: !this.state.animating});
this.setToggleTimeout();
}.bind(this),
1200
);
},