# Menus

(menus)

## Overview

`Menus` in Servoy provide a scripting object for creating and managing menus (`JSMenu`, `JSMenuItem`) in applications. These objects facilitate dynamic or design-time menu configuration and interaction.

The `menus` object supports creating new menus using `createMenu(name)`, where the `name` must be a unique identifier. Existing menus can be retrieved using `getMenu(name)`, returning `null` if the specified menu does not exist. Additionally, all menus, whether created at runtime or design time, can be retrieved using `getMenus()`, which returns an array of available menus.

Menus enable developers to customize user navigation and application functionality dynamically or statically, supporting enhanced application experiences.

## **Returned Types**

[JSMenu](https://docs.servoy.com/reference/servoycore/dev-api/menus/jsmenu),[JSMenuItem](https://docs.servoy.com/reference/servoycore/dev-api/menus/jsmenuitem),

## Methods Summarized

| Type                                                                        | Name                                 | Summary                                                             |
| --------------------------------------------------------------------------- | ------------------------------------ | ------------------------------------------------------------------- |
| [JSMenu](https://docs.servoy.com/reference/servoycore/dev-api/menus/jsmenu) | [createMenu(name)](#createmenu-name) | Create a new, empty menu.                                           |
| [JSMenu](https://docs.servoy.com/reference/servoycore/dev-api/menus/jsmenu) | [getMenu(name)](#getmenu-name)       | Gets a menu by name.                                                |
| [Array](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/array)  | [getMenus()](#getmenus)              | Returns all the menus, either created at design time or at runtime. |

## Methods Detailed

### createMenu(name)

Create a new, empty menu. Identifier must be unique among existing menus.

**Parameters**

* [String](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/string) **name** the menu name (identifier)

**Returns:** [JSMenu](https://docs.servoy.com/reference/servoycore/dev-api/menus/jsmenu) the newly created menu with the specified name.

**Sample**

```js
var mnu = menus.createMenu('mymenu');
```

### getMenu(name)

Gets a menu by name. Returns null if not found.

**Parameters**

* [String](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/string) **name** the menu name (identifier)

**Returns:** [JSMenu](https://docs.servoy.com/reference/servoycore/dev-api/menus/jsmenu) the menu with the specified name, or null if not found.

**Sample**

```js
var mnu = menus.getMenu('mymenu');
```

### getMenus()

Returns all the menus, either created at design time or at runtime.

**Returns:** [Array](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/array) an array of all menus, created either at design time or runtime.

**Sample**

```js
var menus = menus.getMenus();
```

***
