ES6/8 语法 - 箭头函数
ES6/8 syntax - arrow functions
下面的两个虽然看起来是一样的,但结果却不同。
1
const addBlogPost = dispatch => {
return () => {
dispatch({type: 'add_blogpost'});
}
};
2
const addBlogPost = dispatch => dispatch({type: 'add_blogpost'});
谁能指出它们有何不同?
结果将始终相同,因为两个函数都在重新调整同一件事。
唯一的区别是:
- 在第一个函数中,您将返回一个函数,该函数 returns 一个 returns
dispatch
函数的对象。
- 在第二个函数中,您将直接返回
dispatch
函数。
您可以使用此 site 将 es6 箭头函数编译为 vanilla JS,以便轻松查看差异。
第一个编译成这个
var addBlogPost = function addBlogPost(dispatch) {
return function () {
dispatch({
type: 'add_blogpost'
});
};
};
虽然 second 编译成这个
var addBlogPost = function addBlogPost(dispatch) {
return dispatch({
type: 'add_blogpost'
});
};
第一个 returns 一个有调度的函数,而第二个 returns 一个直接调度的函数。
下面的两个虽然看起来是一样的,但结果却不同。
1
const addBlogPost = dispatch => {
return () => {
dispatch({type: 'add_blogpost'});
}
};
2
const addBlogPost = dispatch => dispatch({type: 'add_blogpost'});
谁能指出它们有何不同?
结果将始终相同,因为两个函数都在重新调整同一件事。 唯一的区别是:
- 在第一个函数中,您将返回一个函数,该函数 returns 一个 returns
dispatch
函数的对象。 - 在第二个函数中,您将直接返回
dispatch
函数。
您可以使用此 site 将 es6 箭头函数编译为 vanilla JS,以便轻松查看差异。
第一个编译成这个
var addBlogPost = function addBlogPost(dispatch) {
return function () {
dispatch({
type: 'add_blogpost'
});
};
};
虽然 second 编译成这个
var addBlogPost = function addBlogPost(dispatch) {
return dispatch({
type: 'add_blogpost'
});
};
第一个 returns 一个有调度的函数,而第二个 returns 一个直接调度的函数。