1. =>适用时机规则(《你不知道的JavaScript(下卷)》P107)
- 如果你有一个简短单句在线函数表达式,其中唯一的语句是
return某个计算出的值,且这个函数内部没有this引用,且没用自身引用(递归、事件绑定/解绑定),且不会要求函数执行这些,那么可以安全地把它重构为箭头函数。 - 如果你有一个内层函数表达式,依赖于在包含它的函数中调用
var self = thishack或者.bind(this)来确定适当的this绑定,那么这个内层函数表达式应该可以安全地转换为=>箭头函数。 - 如果你的内层函数表达式依赖于封装函数中某种像
var args = Array.prototype.slice.call(arguments)来保证arguments的词法复制,那么这个内层函数应该可以安全地转换为 => 箭头函数。 - 所有的其他情况——函数声明、较长的多语句函数表达式、需要词法名称标识符(递归等)的函数,以及任何不符合以上几点特征的函数——一般都应该避免
=>函数语法。