混淆出口和进口ES6
我有一个add.js我做到这一点它是有效的混淆出口和进口ES6
const add = (a, b) => {
return a + b;
}
export default add;
但为什么我不能做到这一点
export default add(a, b) => (a + b)
?我将得到添加是未定义的。
另一个文件我有
因为这不是声明变量/常数在JS有道。 只有适当定义的var/constant才会获得空间(内存)。
因此,你需要做这样的
const add;
或
let add;
或
var add;
可能是我的解释是不正确的,但是当你导出甚至我的意思在这种情况下,如果您尚未声明变量,则需要使用const,var或let来进行正确的声明。
如果你只是想给函数直接导出为默认值,你真的只是这样做(没有add
):
export default (a, b) => a + b;
进口将确定用于引用它的标识符。
如果你想要的功能有一个名称(如name
财产填充除默认值以外的内容),你要么让它function
功能:
export default function add(a, b) { return a + b; };
或做它两个部分,即那些您最初:
const add = (a, b) => a + b;
export default add;
(注意:()
周围a + b
中的箭头功能是不必要的,虽然当然你可以选择让它们作为风格的问题。)
我可以做'export default add(a,b)=> {return a + b; };'? –
@AlexYong:不,无论箭头功能是简洁还是冗长都无所谓。但是你可以做上面显示的'function'版本。 –
我可以知道,为什么它被降低了? – Nitesh
*“即使在这种情况下出口时,您也需要使用const,var或let来正确声明”*否,您不需要。我不知道最后一段是否存在,当它是downvoted(措词表明不),但如果是这样,这可能是为什么。 (如果没有,可能是你不清楚你是在处理'export default'方面。) –
谢谢你的解释,但我的意思是如果你已经声明了一个变量,那么它是好的,但如果你还没有声明你需要在使用导出时使用const/let/var。 最初,我没有提到最后一段,因为我提到了为什么用户不能直接使用任何名称与导出没有声明。 现在,我编辑了我的答案以获得更好的解释。顺便说一句,谢谢,我会记住下次有好的解释。 – Nitesh