Первоклассное выражение javascript это
Обновлено: 21.11.2024
В недавнем вопросе я получил предложения поговорить, среди прочего вещи, аспект JavaScript, где функции являются объектами «первого класса». Что означает «первый класс» в этом контексте, в отличие от других объектов?
ProfK 1 Апр 2009 в 16:00 Лучший ответВ информатике говорят, что язык программирования поддерживает первоклассные функции (или функциональные литералы), если он рассматривает функции как первоклассные объекты. В частности, это означает, что язык поддерживает создание новых функций во время выполнения программы, сохранение их в структурах данных, передачу их в качестве аргументов другим функциям и возврат их в качестве значений других функций.
На самом деле, как и любая другая переменная
- Функция является экземпляром типа Object
- Функция может иметь свойства и иметь ссылку на метод конструктора.
- Вы можете сохранить функцию в переменной
- Вы можете передать функцию в качестве параметра другой функции
- Вы можете вернуть функцию из функции
также прочитайте комментарий TrayMan, интересно .
Sander Versluys 1 Апр 2009 в 12:44Я думаю, когда что-то является первым классом в языке, это означает, что это поддерживается его синтаксисом, а не библиотекой или синтаксическим сахаром. например, классы в C не являются первоклассными
Jiang Qiu 1 Апр 2009 в 12:05Простые в JavaScript функции - это объекты первого класса, то есть функции имеют тип Object, и их можно использовать первоклассным образом, как и любой другой объект (String, Array, Number и т. Д.), Поскольку они на самом деле являются объектами. самих себя. Они могут храниться в переменных, передаваться в качестве аргументов функциям, создаваться внутри функций и возвращаться из функций.
Santi 23 Апр 2018 в 09:25- Они могут быть названы переменными.
- Они могут быть переданы в качестве аргументов процедур.
- Они могут быть возвращены как результаты процедур.
- Они могут быть включены в структуры данных.
По сути, это означает, что вы можете делать с функциями все, что вы можете делать со всеми другими элементами в языке программирования. Таким образом, в случае JavaScript это означает, что все, что вы можете делать с Integer, String, Array или любым другим типом Object, вы можете также делать с функциями.
Jörg W Mittag 1 Апр 2009 в 13:57В JavaScript функции являются объектами первого класса, потому что они могут делать гораздо больше, чем объекты.
- Функция является экземпляром типа Object.
Function instanceof Object //returns true
Как и объект, функция может иметь свойства и иметь ссылку на свою функцию конструктора.
- Функции могут быть сохранены в переменной как значение.
- Функции могут быть переданы в качестве аргументов другим функциям
- Вы можете вернуть функцию из функции
- Может быть сохранен в переменной в качестве ссылки.
Это означает, что функция фактически наследуется от Object. Так что вы можете передать его и работать с ним, как с любым другим объектом.
Rashack 1 Апр 2009 в 12:05Простой тест. Если вы можете сделать это на своем языке (например, Python):
Ваш язык рассматривает функции как объекты первого класса.
Yuval Adam 1 Апр 2009 в 12:53Функции JavaScript - это функции первого класса, означающие, что функции и объекты рассматриваются как одно и то же. Функции могут быть сохранены как переменные внутри объекта или массива, а также могут быть переданы в качестве аргумента или возвращены другой функцией. Это делает функцию «первоклассными гражданами в JavaScript»
JavaScript использует синтаксис буквального обозначения, что затрудняет полное понимание того факта, что в JavaScript функции являются объектами.
Оба declerations эквивалентны. Используя new , мы вызываем функцию конструктора объекта. Также с помощью <> (ярлык JavaScript называется литералами) мы вызываем функцию построения объекта. <> - просто более короткое представление для создания экземпляра конструктора.
Большинство языков использует ключевое слово new для создания объекта, поэтому давайте создадим объект JavaScript.
Как видите, мы создали имя объекта function .
Создание той же функции имени объекта с использованием выражения функции JavaScript.
Здесь мы идем, мы только что создали функцию имени объекта.
Hashem Qolami 30 Дек 2015 в 14:08Это означает, что функции - это объекты, имеющие тип и поведение. Их можно динамически создавать, передавать как любой другой объект, и тот факт, что их можно вызывать, является частью их интерфейса.
cadrian 1 Апр 2009 в 12:05Определение на сайте Mozilla является кратким и ясным. Согласно им,
В JavaScript функции являются первоклассными объектами, , потому что они могут иметь свойства и методы, как и любой другой объект . Что отличает их от других объектов, так это то, что функции могут быть вызваны. Вкратце, они являются объектами Function.
Arpit 21 Авг 2018 в 10:37функция - это «подпрограмма», которая может вызываться внешним (или внутренним в случае рекурсии) кодом функции. Как и сама программа, функция состоит из последовательности операторов, называемых телом функции. Значения могут быть переданы в функцию, и функция вернет значение.
Более полное одобрение формулировки Стрейчи-Суссмана-Абельсона. Так что, если ваш язык поддерживает такую конструкцию, то у вас есть функция в качестве языка первого класса :)
Короче говоря, все является первоклассным объектом, если оно действует на языке как манипуляция состоянием типа объекта или типа объекта. Просто то, что вы можете оперировать и передавать заявления и оценивать в выражениях одновременно. Или даже короче: когда вы можете рассматривать функцию как объект, который может быть вызван дополнительно.
Читайте также: