由于普通和ES6箭头功能之间的上下文差异存在很大差异,我希望能够找出在回调fn上接收到哪一个。
typeof
将return function
。有什么办法可以区分吗?
答案 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