JavaScript 的函数是可调用的,当 hi
后面紧跟 ()
的时候就会运行并返回一个值;如果没有 ()
,hi
就简单地返回存到这个变量里的函数。
// 太傻了
const getServerStuff = callback => ajaxCall(json => callback(json));
// 这才像样
const getServerStuff = ajaxCall;
1
2
3
4
5
2
3
4
5
// 这行
ajaxCall(json => callback(json));
// 等价于这行
ajaxCall(callback);
// 那么,重构下 getServerStuff
const getServerStuff = callback => ajaxCall(callback);
// ...就等于
const getServerStuff = ajaxCall // <-- 看,没有括号哦
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11