Как я могу снова вызвать функцию высокого порядка в коде? - PullRequest
0 голосов
/ 30 мая 2020
const x = { a:1 };

(function q({a}){
  console.log(a);
  return a;
})(x); // unable to execute

console.log(q(x))

Я не могу выполнить строку 6. Почему? В строке 3 консоль работает, если я удалю строку 6:

Error: q is not defined

1 Ответ

0 голосов
/ 30 мая 2020
const x = { a:1 };
// This IIFE isn't assigned to a variable in global. No reference to the object
(function q({a}){
  console.log(a);
  return a;
})(x); // unable to execute

console.log (q (x))

Это работает, но вы не можете вызвать его снова, так как a был возвращен обратно в q, а q не является функцией:

const x = { a:1 };
// This IIFE isn't assigned to a variable in global. No reference to the object
const q = (function ({a}){
  console.log(a);
  return a;
})(x); // unable to execute



 console.log(q) // => 1
...