Нет очевидной разницы между arrow function и regular function.Как программно отличить функцию стрелки от регулярной функции?
({}).toString.call(function() {})
"[object Function]"
({}).toString.call(() => {})
"[object Function]"
или
console.dir((function() {}))
function anonymous()
arguments: null
caller: null
length: 0
name: ""
prototype: Object
__proto__:()
<function scope>
console.dir((() => {}))
function anonymous()
arguments: (...)
caller: (...)
length: 0
name: ""
__proto__:()
<function scope>
Поведение двух разных, хотя и существует допустимый прецедент для возможности рассказать обо всех остальных.
Как программно отличить функцию стрелки от регулярной функции?
Так в основном какой-нибудь способ узнать, если анонимная функция или функция стрелка была использована в качестве аргумента? Я бы не подумал, что есть что-то подобное, но, может быть, есть? – adeneo
Ваш ответ, вероятно, находится в этом объекте, поскольку регулярная функция присваивает этот объект самому себе, но функция стрелки назначает этот объект тому, что этот объект находится за пределами функции стрелки. – Binvention
Зачем вам это нужно во время выполнения? «Поведение двух отличается, хотя» --- это одно и то же: они оба принимают аргументы и возвращают результат. – zerkms