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 2524

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

本文价值25.24RMB