Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   В чём принципиальные отличия объявлений функции? (https://javascript.ru/forum/misc/75948-v-chjom-principialnye-otlichiya-obyavlenijj-funkcii.html)

Svorg 19.11.2018 14:14

В чём принципиальные отличия объявлений функции?
 
Какое предпочтительнее?

async function someTest(a,b)=>{...};
var/let/const someTest=async function(a,b){...};
var/let/const someTest=async(a,b)=>{...};
var/let/const someObj={someTest:async function(a,b){...}};
var/let/const someObj={someTest:async(a,b)=>{...}};

Спасибо!

Malleys 19.11.2018 14:46

Первый вариант записывается так:
async function someTest(a,b) {...};


Цитата:

Сообщение от Svorg
async function someTest(a,b) {...};
Объявление именованной асинхронной функции



var/let/const someTest=async function(a,b){...};
именованная асинхронная функция, присвоенная переменной/константе



var/let/const someTest=async(a,b)=>{...};
выражение асинхронной именованной стрелочной функции, присвоенное переменной/константе



как метод/свойство объекта
var/let/const someObj={someTest:async function(a,b){...}};

var/let/const someObj={someTest:async(a,b)=>{...}};


А так у вас все функции при вызове возвращают тип Promise

B ещё варианты
const someObj={ async someTest(a,b) {} };

class SomeObj { async someTest(a, b) {} }

j0hnik 19.11.2018 16:03

Цитата:

Сообщение от Svorg
В чём принципиальные отличия

Объявленные функции поднимаются вместе с телом


Часовой пояс GMT +3, время: 15:57.