mirror of
https://git.proxmox.com/git/pve-eslint
synced 2025-10-13 21:33:27 +00:00

includes a (minimal) working wrapper Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
37 lines
981 B
Markdown
37 lines
981 B
Markdown
# Disallow Function Constructor (no-new-func)
|
|
|
|
It's possible to create functions in JavaScript using the `Function` constructor, such as:
|
|
|
|
```js
|
|
var x = new Function("a", "b", "return a + b");
|
|
```
|
|
|
|
This is considered by many to be a bad practice due to the difficulty in debugging and reading these types of functions.
|
|
|
|
## Rule Details
|
|
|
|
This error is raised to highlight the use of a bad practice. By passing a string to the Function constructor, you are requiring the engine to parse that string much in the way it has to when you call the `eval` function.
|
|
|
|
Examples of **incorrect** code for this rule:
|
|
|
|
```js
|
|
/*eslint no-new-func: "error"*/
|
|
|
|
var x = new Function("a", "b", "return a + b");
|
|
var x = Function("a", "b", "return a + b");
|
|
```
|
|
|
|
Examples of **correct** code for this rule:
|
|
|
|
```js
|
|
/*eslint no-new-func: "error"*/
|
|
|
|
var x = function (a, b) {
|
|
return a + b;
|
|
};
|
|
```
|
|
|
|
## When Not To Use It
|
|
|
|
In more advanced cases where you really need to use the `Function` constructor.
|