В статье Википедии о первоклассных гражданах говорится, что «некоторые авторы» считают, что функции являются первоклассными гражданами только на языке, если язык поддерживает их создание во время выполнения. Эта статья, написанный Джеймсом Когланом, прямо называет функции первоклассными гражданами - я не знаю, осведомлен ли он о споре по поводу критериев первоклассности.
Вот мои вопросы:
- Являются ли процедуры JavaScript первоклассными гражданами при использовании дополнительных критериев «создание во время выполнения»?
Стоит упомянуть, что, исходя из более общих критериев (применимых к другим объектам в целом), функции JavaScript, очевидно, являются первоклассными гражданами, а именно, они могут передаваться как переменные; поэтому я считаю, что упомянутые выше критерии добавляют интересную динамику - или, по крайней мере, уточняющую динамику - к беседе, которая, как пишет один пользователь, не является "произвольной".
- Если да, то как выглядит создание функции во время выполнения в JavaScript (это то, что мы называем обещаниями, обратными вызовами, анонимностью и т. Д.)?
- Если нет, то как выглядит создание функции во время выполнения на другом языке?