Debugging 使用fat arrow(fart)语法定义函数时,vim中出现JSlint错误
最近我养成了将函数定义为Debugging 使用fat arrow(fart)语法定义函数时,vim中出现JSlint错误,debugging,vim,ecmascript-6,jslint,arrow-functions,Debugging,Vim,Ecmascript 6,Jslint,Arrow Functions,最近我养成了将函数定义为 ()=>{ } 但是vim中的jslint与syntastic一起显示错误,并希望以 function(){ } 我错过什么了吗?第一个定义是否不正确且不应使用,或者在jslint中传递了一些附加参数?jslint打算将箭头函数用于单行表达式: let es7 = () => Object.hasOwnProperty("getOwnPropertyDescriptors"); es7(); 因为它也不鼓励在函数体内部使用此,并
()=>{
}
但是vim中的jslint
与syntastic
一起显示错误,并希望以
function(){
}
我错过什么了吗?第一个定义是否不正确且不应使用,或者在jslint中传递了一些附加参数?jslint打算将箭头函数用于单行表达式:
let es7 = () => Object.hasOwnProperty("getOwnPropertyDescriptors");
es7();
因为它也不鼓励在函数体内部使用此
,并且无法命名箭头函数
胖箭头参数在视觉上可能与表达式混淆。胖箭头函数不能合理地返回对象文字
farts的理由是,它们更适合编写只返回执行简单表达式结果的简单函数
Farts在更改“this”和“arguments”的含义时出错了,但JSLint不鼓励使用“this”和“arguments”,所以这并不重要
此外,花括号可能不明确:
如果要创建简单的factory函数,则不能将对象文字放在=>
的右侧,因为大括号将被解释为函数体。因此,您必须使用:
幸运的是,JSLint将能够检测到这些类型的歧义
此外,在全局范围内定义为对象文本值或函数原型方法的箭头函数使用顶级宿主对象(窗口
或全局
)作为上下文,而不是在其他情况下使用父函数
参考资料
let bar = () => ({}); // wrap the object literal in parens