04. Functions as Objects
Функции в JS являются специальной разновидностью объектов, с которым связан выполняемый код. Хоть для функции typeof
вернет значение "function"
, обращаться и взаимодействовать с функциями можно как с объектами.
Каждая функция является экземпляром класса Function
и наследует свойства от Function.prototype
, который в свою очередь наследует от Object.prototype
.
Свойства функции:
caller
- вернет объект, вызвавший данную функцию.length
- число объявленных параметров функции.name
- возвращает имя функцииconstructor
- как обычно ссылка на функцию-конструктор.Каждая функция создается с дополнительными скрытыми свойствами - контекстом вызова
[[Scope]]
функции и кодом[[Source]]
функции.
Методы:
apply
/bind
/call
-- косвенный вызов функцииtoString
-- возвращает исходный код функции в виде форматированной строки (ES2018).Исходный код, если это возможно;
В противном случае - стандартная вставка (
"function FunctionName() { [native code] }"
).
Last updated
Was this helpful?