找出回调函数是否是ES6箭头

时间:2016-07-05 22:21:00

标签: javascript function ecmascript-6

由于普通和ES6箭头功能之间的上下文差异存在很大差异,我希望能够找出在回调fn上接收到哪一个。

typeofreturn function。有什么办法可以区分吗?

2 个答案:

答案 0 :(得分:6)

箭头函数不能用作构造函数,并将typeof arrowFunc.prototype显示为undefined,而非箭头函数显示`" object"。

答案 1 :(得分:2)

您可以使用Function.toString()返回函数源代码的字符串表示形式,然后在字符串中查找箭头(=>)。

var arrowFunc = x => 2 * x
var regFunc = function (x) {return 2 * x}

arrowFunc.toString().indexOf("=>") // 2
regFunc.toString().indexOf("=>") // -1