23 lines
533 B
Markdown
23 lines
533 B
Markdown
---
|
|
title: Call or return
|
|
tags: function
|
|
author: chalarangelo
|
|
cover: cows
|
|
firstSeen: 2022-04-04T05:00:00-04:00
|
|
---
|
|
|
|
Calls the argument if it's a function, otherwise returns it.
|
|
|
|
- Use the `typeof` operator to check if the given argument is a function.
|
|
- If it is, use the spread operator (`...`) to call it with the rest of the given arguments. Otherwise, return it.
|
|
|
|
```js
|
|
const callOrReturn = (fn, ...args) =>
|
|
typeof fn === 'function' ? fn(...args) : fn;
|
|
```
|
|
|
|
```js
|
|
callOrReturn(x => x + 1, 1); // 2
|
|
callOrReturn(1, 1); // 1
|
|
```
|