在写一个debounce方法的时候,发现不能自己随便对一个function执行call,因为它有可能是一个经过bind的bound函数,于是写了一个函数来判断这个函数的类型。
function isBoundFunction(func) { if(typeof func.prototype === 'object') return false // 普通函数,包括对象方法,它们的prototype为object try { new func() } catch(e) { return false // 箭头函数不能被实例化 } return true // bound函数prototype为undefined,虽然它也能被实例化 }
函数分了三种类型,普通函数、箭头函数和bound函数。实际上,根据上面的这种判断模式,你可以通过修改这个函数来判断函数是否是箭头函数。
2017-04-20 2698