Function

Тип данных для хранения функций JavaScript. Экземпляры обычно создают с помощью инструкции function в одной из эквивалентных форм:

var myFunc1 = function(a, b, c) {
  // ...
}
 
function myFunc2(a, b, c) {
  // ...
}
 
print(typeof myFunc1); // выводит "function"
print(typeof myFunc2); // выводит "function"

Function([arg1[, arg2[, ...argN]],] functionBody)

Класс для объектов-функций.

Конструктор класса можно использовать для создания функций из строк. В качестве первых параметров принимаются имена аргументов функции в виде строк; их может быть от 0 до бесконечности. Последним параметром передаётся тело функции в виде строки.

var sayHelloFunc = new Function("print('Hello world!');");
var sumFunc = new Function('a', 'b', 'return a + b;');

Function.apply(thisArg[, args])

Вызывает функцию со значением this равным thisArg и параметрами заданными в виде массива args.

Параметр args опционален и может быть опущен, равен null или undefined, если функция не принимает аргументов.

Возвращает значение, которое вернула функция.

То же, что и Function.call, но параметры передаются, одним массивом.

Function.bind(thisArg[, arg1[, arg2[, ...]]])

Возвращает новую функцию, которая при вызове получает значение this равное thisArg и первыми аргументами, равными arg1, arg2, … , argN.

При вызове переданные новой функции параметры добавляются после заданных в bind. Таким образом, если в bind был задан только thisArg, функция сохранит свой изначальный перечень параметров.

Function.call(thisArg[, arg1[, arg2[, ...]]])

Вызывает функцию со значением this равным thisArg и параметрами arg1, arg2, … , argN.

Возвращает значение, которое вернула функция.

То же, что и Function.apply, но параметры передаются, как список аргументов.

Function.replaceWith(newFunc)

Подменяет текущую функцию той, что передана в newFunc с сохранением контекста (области видимости) текущей.

Реализована для правки вложенных функций через терминал.

Возвращает результирующую функцию.