我正在学习 React Native 类(class),并意识到讲师以两种不同的方式声明函数,原因似乎没有什么不同。请解释何时应使用每个函数声明:
example = () => ();
对比
example = () => {};
谢谢
最佳答案
箭头函数在 function bodies 中可能有所不同(谢谢罗比)。 简洁函数体只能包含一个被计算并隐式返回的表达式。传统的block函数体需要return
关键字,否则将返回void
。
example1 = () => 1 + 1;
example2 = () => {
const result = 1 + 1;
return result;
};
example3 = () => {
const result = 1 + 1;
};
example1()
具有简洁的主体,并且将隐式返回表达式 2
的结果。
example2()
有一个 block 体并且显式返回2
。
example3()
有一个 block 体并且没有显式返回,因此它返回void
。
请注意,如果您想返回对象字面量,则需要在简洁函数体周围使用普通大括号()
:
example = () => ({some: 'object'});
关于javascript - ES6函数声明困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54183780/