Ooo, to je chytré! Zachytávám to z Davidova blogu.
const isRequired = () => ( throw new Error('param is required'); ); const hello = (name = isRequired()) => ( console.log(`hello $(name)`) ); // These will throw errors hello(); hello(undefined); // These will not hello(null); hello('David');
Myšlenka zde spočívá v tom, že používá výchozí parametry, například to, jak má b
parametr zde výchozí, pokud jej nic neposíláte:
function multiply(a, b = 1) ( return a * b; )
Takže výše, pokud neposkytnete a name
, použije místo toho výchozí, což je ta funkce, která způsobí chybu.