isBoundFunction 判断是否为bound function

广告位招租
扫码页面底部二维码联系

在写一个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

为价值买单,打赏一杯咖啡

本文价值26.98RMB