Функциональные выражения
Материал на этой странице устарел, поэтому скрыт из оглавления сайта.
Более новая информация по этой теме находится на странице https://learn.javascript.ru/function-expressions.
В JavaScript функция является значением, таким же как строка или число.
Как и любое значение, объявленную функцию можно вывести, вот так:
function sayHi() < alert( "Привет" ); >alert( sayHi ); // выведет код функции
Обратим внимание на то, что в последней строке после sayHi нет скобок. То есть, функция не вызывается, а просто выводится на экран.
Функцию можно скопировать в другую переменную:
function sayHi() < // (1) alert( "Привет" ); >var func = sayHi; // (2) func(); // Привет // (3) sayHi = null; sayHi(); // ошибка (4)
- Объявление (1) как бы говорит интерпретатору «создай функцию и помести её в переменную sayHi
- В строке (2) мы копируем функцию в новую переменную func . Ещё раз обратите внимание: после sayHi нет скобок. Если бы они были, то вызов var func = sayHi() записал бы в func результат работы sayHi() (кстати, чему он равен? правильно, undefined , ведь внутри sayHi нет return ).
- На момент (3) функцию можно вызывать и как sayHi() и как func()
- …Однако, в любой момент значение переменной можно поменять. При этом, если оно не функция, то вызов (4) выдаст ошибку.
Обычные значения, такие как числа или строки, представляют собой данные. А функцию можно воспринимать как действие.
Это действие можно запустить через скобки () , а можно и скопировать в другую переменную, как было продемонстрировано выше.
Объявление Function Expression
Существует альтернативный синтаксис для объявления функции, который ещё более наглядно показывает, что функция – это всего лишь разновидность значения переменной.
Он называется «Function Expression» (функциональное выражение) и выглядит так:
var f = function(параметры) < // тело функции >;
var sayHi = function(person) < alert( "Привет, " + person ); >; sayHi('Вася');
Сравнение с Function Declaration
«Классическое» объявление функции, о котором мы говорили до этого, вида function имя(параметры) <. >, называется в спецификации языка «Function Declaration».
- Function Declaration – функция, объявленная в основном потоке кода.
- Function Expression – объявление функции в контексте какого-либо выражения, например присваивания.
Несмотря на немного разный вид, по сути две эти записи делают одно и то же:
// Function Declaration function sum(a, b) < return a + b; >// Function Expression var sum = function(a, b)
Оба этих объявления говорят интерпретатору: «объяви переменную sum , создай функцию с указанными параметрами и кодом и сохрани её в sum «.
Основное отличие между ними: функции, объявленные как Function Declaration, создаются интерпретатором до выполнения кода.
Поэтому их можно вызвать до объявления, например:
sayHi("Вася"); // Привет, Вася function sayHi(name)
А если бы это было объявление Function Expression, то такой вызов бы не сработал:
sayHi("Вася"); // ошибка! var sayHi = function(name)
Это из-за того, что JavaScript перед запуском кода ищет в нём Function Declaration (их легко найти: они не являются частью выражений и начинаются со слова function ) и обрабатывает их.
А Function Expression создаются в процессе выполнения выражения, в котором созданы, в данном случае – функция будет создана при операции присваивания sayHi = function.
Как правило, возможность Function Declaration вызвать функцию до объявления – это удобно, так как даёт больше свободы в том, как организовать свой код.
Можно расположить функции внизу, а их вызов – сверху или наоборот.
Условное объявление функции
В некоторых случаях «дополнительное удобство» Function Declaration может сослужить плохую службу.
Например, попробуем, в зависимости от условия, объявить функцию sayHi по-разному:
var age = +prompt("Сколько вам лет?", 20); if (age >= 18) < function sayHi() < alert( 'Прошу вас!' ); >> else < function sayHi() < alert( 'До 18 нельзя' ); >> sayHi();
Function Declaration при use strict видны только внутри блока, в котором объявлены. Так как код в учебнике выполняется в режиме use strict , то будет ошибка.
А что, если использовать Function Expression?
var age = prompt('Сколько вам лет?'); var sayHi; if (age >= 18) < sayHi = function() < alert( 'Прошу Вас!' ); >> else < sayHi = function() < alert( 'До 18 нельзя' ); >> sayHi();
var age = prompt('Сколько вам лет?'); var sayHi = (age >= 18) ? function() < alert('Прошу Вас!'); >: function() < alert('До 18 нельзя'); >; sayHi();
Оба этих варианта работают правильно, поскольку, в зависимости от условия, создаётся именно та функция, которая нужна.
Анонимные функции
Взглянем ещё на один пример – функцию ask(question, yes, no) с тремя параметрами:
question Строка-вопрос yes Функция no Функция
Она выводит вопрос на подтверждение question и, в зависимости от согласия пользователя, вызывает функцию yes() или no() :
function ask(question, yes, no) < if (confirm(question)) yes() else no(); >function showOk() < alert( "Вы согласились." ); >function showCancel() < alert( "Вы отменили выполнение." ); >// использование ask("Вы согласны?", showOk, showCancel);
Какой-то очень простой код, не правда ли? Зачем, вообще, может понадобиться такая ask ?
…Оказывается, при работе со страницей такие функции как раз очень востребованы, только вот спрашивают они не простым confirm , а выводят более красивое окно с вопросом и могут интеллектуально обработать ввод посетителя. Но это всё потом, когда перейдём к работе с интерфейсом.
Здесь же обратим внимание на то, что то же самое можно написать более коротко:
function ask(question, yes, no) < if (confirm(question)) yes() else no(); >ask( "Вы согласны?", function() < alert("Вы согласились."); >, function() < alert("Вы отменили выполнение."); >);
Здесь функции объявлены прямо внутри вызова ask(. ) , даже без присвоения им имени.
Функциональное выражение, которое не записывается в переменную, называют анонимной функцией.
Действительно, зачем нам записывать функцию в переменную, если мы не собираемся вызывать её ещё раз? Можно просто объявить непосредственно там, где функция нужна.
Такого рода код возникает естественно, он соответствует «духу» JavaScript.
new Function
Существует ещё один способ создания функции, который используется очень редко, но упомянем и его для полноты картины.
Он позволяет создавать функцию полностью «на лету» из строки, вот так:
var sum = new Function('a,b', ' return a+b; '); var result = sum(1, 2); alert( result ); // 3
То есть, функция создаётся вызовом new Function(params, code) :
params Параметры функции через запятую в виде строки. code Код функции в виде строки.
Таким образом можно конструировать функцию, код которой неизвестен на момент написания программы, но строка с ним генерируется или подгружается динамически во время её выполнения.
Пример использования – динамическая компиляция шаблонов на JavaScript, мы встретимся с ней позже, при работе с интерфейсами.
Итого
Функции в JavaScript являются значениями. Их можно присваивать, передавать, создавать в любом месте кода.
- Если функция объявлена в основном потоке кода, то это Function Declaration.
- Если функция создана как часть выражения, то это Function Expression.
Между этими двумя основными способами создания функций есть следующие различия:
| Function Declaration | Function Expression | |
|---|---|---|
| Время создания | До выполнения первой строчки кода. | Когда управление достигает строки с функцией. |
| Можно вызвать до объявления | Да (т.к. создаётся заранее) | Нет |
| Условное объявление в if | Не работает | Работает |
Иногда в коде начинающих разработчиков можно увидеть много Function Expression. Почему-то, видимо, не очень понимая происходящее, функции решают создавать как var func = function() , но в большинстве случаев обычное объявление функции – лучше.
Если нет явной причины использовать Function Expression – предпочитайте Function Declaration.
Сравните по читаемости:
// Function Expression var f = function() < . >// Function Declaration function f()
Function Declaration короче и лучше читается. Дополнительный бонус – такие функции можно вызывать до того, как они объявлены.
Используйте Function Expression только там, где это действительно нужно и удобно.
Передача функции в функцию — Первоклассные значения в JavaScript

В информатике существует термин «Первоклассные значения» . Javascript это тот язык, в котором это понятие применимо к функциям .
Но обо всем по порядку. Сначала нужно ответить на вопрос: что такое первоклассные значения в программировании?
Для первоклассных значений характерно следующее :
- Их можно присваивать переменным или сохранять/заносить в массив или объект.
- Передавать эти значения функциям в качестве параметра.
- Возвращать из функций.
В Javascript все перечисленные действия можно выполнять с функциями . То есть функцию можно присвоить переменной, передать в другую функцию в качестве параметра или вернуть из функции.
Здесь уже шла речь о том, что функции можно рассматривать как значения . А также о том, как происходит присваивание функции переменной.
Поэтому далее поговорим о том, как происходит передача функции в качестве параметра в другую функцию .
Первоклассные значения в javascript?
- undefined — неопределенное значение
- null — несуществующий объект
- 0 — ноль
- «empty string» — пустая строка
- NaN — не число
- object — объект
- array — массив
- number — число
- string — строка
Напомним, что псевдоложные значения при составлении условий возвращают ложь false, а псевдоистинные, соответственно, истину true.
Передача функции в функцию
Для примера того, как в Javascript происходит передача функции другой функции, возьмем массив, состоящий из объектов.
Каждый объект массива состоит из двух свойств: value и returned. Первое содержит название одного из псевдоложных значений, значением второго является ложь — false:
То есть исходный массив — это своего рода структура данных, которая содержит перечень всех псевдоложных значений и указание на то, что все они при составлении условий возвращают ложь false.
Сделаем в нашей структуре некоторые изменения : Во-первых, укажем, что одно из псевдоложных значений возвращает истину true, что является ошибкой и, во-вторых, вместо одного из псевдоложных значений укажем псевдоистиное, что также не допустимо , так как предполагается, что исходный массив должен содержать исключительно псевдоложные значения .
Итак, в массиве из объектов сделано две ошибки:
1. В нем присутствует псевдоистиное значение string .
2. Указано, что псевдоложное значение null возвращает истину true.
Используя передачу функции в качестве параметра другой функции , проверим массив и выявим ошибки. Для этого :
Составим одну основную функцию , которая будет перебирать все значения массива, то есть каждый из объектов.
function analysis_each ( array , analysis_function ) for( i = 0 ; i < array .length; i ++)
if( analysis_function ( array [ i ])) < /* if true */
return false
- Функция analysis_each анализирует каждый элемент массива array на предмет его истинности (будем анализировать массив pseudo_false) .
- Функция возвращает false, если условие истинно и на этом заканчивает свою работу. Если же условие ложно, то цикл повторяется.
- Если ошибок в массиве не найдено, то функция возвращает true.
Теперь составим вспомогательные функции, которые мы будем передавать в качестве параметра в основную функцию.
С помощью 1-ой в условии функции analysis_each будут рассматриваться значения свойства returned каждого объекта массива. На данном этапе задача состоит в том, чтобы выяснить, есть ли среди них true.
function analysis_returned ( array ) return ( array . returned );
>
2-я функция предназначена для сравнения значения свойства value каждого объекта массива с псевдоистиным значением string . Результат этого сравнения также будет фигурировать в условии основной функции.
function analysis_value ( array ) return ( array . value == «string» );
>
Теперь мы можем приступить к тому, ради чего написана эта статья: к передаче функции в качестве параметра в другую функцию .
Итак, передаем поочередно каждую из вспомогательных функций analysis_returned и analysis_value в основную функцию analysis_each.
При этом каждый раз функцию analysis_each будем присваивать переменной.
var search_true = analysis_each ( pseudo_false , analysis_returned );
if(!search_true)
console . log ( ‘Ошибка, одному из псевдоложных значений присвоена ИСТИНА’) ;
>
var search_string = analysis_each ( pseudo_false , analysis_value );
if( !search_string )
console . log ( ‘Внимание, в списке псевдоложных значений присутствует псевдоИСТИНОЕ значение «string»‘ );
>
- Функция analysis_returned будучи переданной в качестве параметра в analysis_each позволяет проверить значение свойства returned каждого объекта массива pseudo_false.
- Функция analysis_value при передачи в функцию analysis_each позволяет проверить свойство value каждого объекта массива pseudo_false.
- Одновременно с этим мы дважды присваиваем функцию analysis_each различным переменным.
Далее приведен весь код этого примера.
Фрагмент кода
/* Основная функция analysis_each перебирает все элементы массива (все объекты), каждый из которых является параметром функции analysis_function */
function analysis_each(array, analysis_function) for(i = 0; i < array.length; i++)if(analysis_function(array[i])) /* if true */
return false
>
>
return true
>
/* Функция для анализа свойства returned */
function analysis_returned(array) return (array.returned);
>
/* Функция для анализа свойства value */
function analysis_value(array) return (array.value == ‘string’);
>
/* Присваивание функций переменным */
var search_true = analysis_each(pseudo_false, analysis_returned);
if(!search_true) console.log( ‘Ошибка, одному из псевдо ЛОЖНЫХ значений присвоена ИСТИНА’ );
>
else console.log( ‘No Error’ );
>
var search_string = analysis_each(pseudo_false, analysis_value);
if(!search_string) console.log( ‘Внимание, в списке псевдоложных значений присутствует псевдоИСТИНОЕ значение «string»‘ );
>
else console.log( ‘No Error’ );
>
Ошибка, одному из псевдо ЛОЖНЫХ значений присвоена ИСТИНА
Внимание, в списке псевдоложных значений присутствует псевдоИСТИНОЕ значение «string»
Передача функции в функцию — Тонкости и нюансы
Теперь составим массив из псевдоиcтинных значений.
Сделаем в нем ошибку:
Пробуем проверить. Ищем в массиве false.
При этом функция analysis_returned не сможет нам в этом помочь. Почему?
Потому, что значения свойств returned в массиве pseudo_true в основном равны true. Как вы помните, если в условии функции analysis_each будет истина, то она выдаст нам false, а значит ошибку, в то время как в данном случае ошибки нет.
Выходит, что мы увидим ошибку в любом случае: есть она или нет.
Значит, для проверки массива pseudo_true нужна отдельная вспомогательная функция. Назовем ее analysis_returned_true.
function analysis_returned_true ( array ) return ( ! array . returned );
>
Как видите функция analysis_returned_true идентична функции analysis_returned, но с одной существенной разницей : благодаря восклицательному знаку !array.returned мы будем получать значение свойства returned противоположное реально существующему.
Так как же теперь будет работать функция analysis_each, если в нее в качестве параметра передать функцию analysis_returned_true?
Напомним, как выглядит функция analysis_each :
function analysis_each ( array , analysis_function ) for( i = 0 ; i < array .length; i ++)
if( analysis_function ( array [ i ])) < /* if true */
return false
- Теперь значения true свойства returned массива pseudo_true будут фигурировать в условии функции analysis_each как ложные, и цикл будет повторяться.
- Если же свойство returned будет равно false, то в условии функции analysis_each окажется истина true и проверка будет остановлена. Таким образом, ошибка будет найдена.
Далее приведен весь код, где проводится работа с массивом из псевдоистинных значений.
Фрагмент кода
/* Основная функция analysis_each перебирает все элементы массива (все объекты), каждый из которых является параметром функции analysis_function */
function analysis_each(array, analysis_function) for(i = 0; i < array.length; i++)if(analysis_function(array[i])) < /* if true */
return false
>
>
return true
>
/* Функция для анализа свойства returned */
function analysis_returned_true(array) return ( ! array.returned);
>
/* Присваивание функций переменной */
var search_false = analysis_each(pseudo_true, analysis_returned_true);
if(!search_false) console.log( ‘Ошибка, одному из псевдо ИСТИННЫХ значений присвоена ЛОЖЬ’ );
>
else console.log( ‘No Error’ );
>
Ошибка, одному из псевдо ИСТИННЫХ значений присвоена ЛОЖЬ
В зависимости от способностей, тема передачи функции другой функции может оказаться довольно сложной для понимания. Но постарайтесь вникнуть.

site.komp36.ruКак работать на себя? Твой сайт фотографа Что есть на сайте? Несколько фото галерей: свадебная, постановочная съемка, love story, детские фото. Договор на фотосъемку, прайс-лист.

site.komp36.ru Акция Как начать свое дело? Свой сайт «Укладка плитки» 9 000 руб. Лендинг адаптируется под любой вид отделочных работ, продажу товаров или услуг. Сайт поможет найти новых клиентов

site.komp36.ru Акция Продающий лендинг «Установка и продажа окон» 9 000 руб. Одностраничный продающий сайт. Установка и продажа окон, установка дверей, перегородок. Заявки прямо с сайта
Читайте также.

Передача переменой в функцию в JavaScript

Передача объекта в Функцию — Переменная ссылается на объект

Функция isNaN — Число или не число

Функции parseInt, parseFloat — Конвертация строк

Что нужно для изучения javascript?

Метод write() объекта document

site.komp36.ruКак работать на себя? Твой сайт фотографа Что есть на сайте? Несколько фото галерей: свадебная, постановочная съемка, love story, детские фото. Договор на фотосъемку, прайс-лист.

site.komp36.ru Акция Как начать свое дело? Свой сайт «Укладка плитки» 9 000 руб. Лендинг адаптируется под любой вид отделочных работ, продажу товаров или услуг. Сайт поможет найти новых клиентов

site.komp36.ru Акция Продающий лендинг «Установка и продажа окон» 9 000 руб. Одностраничный продающий сайт. Установка и продажа окон, установка дверей, перегородок. Заявки прямо с сайта
Безупречность хаоса: что такое энтропия и как жить в полной неопределенности

Энтропия — одно из самых сложных понятий в науке и в то же время одно из самых актуальных для современной реальности. Ведь речь идет о неопределенности, неизвестности и беспорядке, присущих любой системе, от человеческих отношений до падающего снега. Forbes Life объясняет, как работают законы энтропии и почему их важно понимать нам всем
«Только энтропия дается легко», — говорил Чехов, и это действительно так: все в мире естественным образом стремится к хаосу. И очень быстро его достигает, только дай волю. Песочный замок смывает волна, заброшенный город зарастает деревьями, а если смахнуть собранный пазл со стола, его частицы рассыпятся в произвольном порядке. Мы переживаем энтропию в каждый момент времени, не отдавая себе в этом отчета: клетки человеческого тела разрушаются, в углах скапливается пыль, идеальные кубики сахара тают в чае. Происходят революции и государственные перевороты — и сама Вселенная неумолимо мчится навстречу коллапсу. Одним словом, как справедливо подметил ученый Стивен Хокинг в «Краткой истории времени»: «Энтропия увеличивается со временем, и это похоже на закон Мерфи: все всегда идет не так!»
Итак, энтропия — это мера беспорядка и неизвестности, используемая в разных науках, от химии до психологии. На деле все, конечно, намного сложнее.
Хаос и тепло: что такое энтропия в точных науках
Изучение энтропии — одно из самых нелюбимых занятий студентов технических вузов. Дело в том, что это сложная, трудно измеримая величина с множеством трактовок. В принципе как и сам хаос. В переводе с греческого «энтропия» значит «превращение» — впервые этот термин (вне всякого философского контекста) использовал немецкий физик Рудольф Клазиус в 1865 году. Он в первом приближении сформулировал второй закон термодинамики: «Нет процесса, единственным результатом которого является передача количества теплоты от более холодного тела к более теплому». В процессе этой передачи в природе обязательно произойдут какие-либо изменения, которые могли бы компенсировать переход.
Представим, что на подоконнике лежит кусок нагретого железа, его тепло постепенно распространяется в окружающей среде. В какой-то момент он передает пять квантов тепла, а рядом летают пять молекул газа. Но совершенно не очевидно, что каждая молекула получит по кванту. Возможно, одна получит все пять. Или какой-то молекуле достанется два, а какой-то — ни одного. Многообразие этих вариантов, степень рассеивания энергии в системе и называется энтропией в термодинамике. Для ее обозначения используется символ S.
Клазиус также вывел важнейший закон возрастания энтропии: в любой замкнутой системе она увеличивается или остается прежней. Чтобы понять это правило, подойдут бытовые аллегории. Представим, что мы оставили груду неразобранных носков в закрытом шкафу. Если открыть его через много месяцев, окажется, что изменений не произошло. Беспорядок никуда не делся, а, скорее всего, еще и возрос — носки покрылись пылью, на полках завелись тараканы и так далее.
На основании закона возрастания энтропии Клазиус выдвинул мрачную гипотезу тепловой смерти Вселенной: рано или поздно она достигнет максимальной энтропии и разрушится. К счастью, этого не произойдет: во времена Клазиуса науке еще не было известно, что Вселенная — не замкнутая, а постоянно расширяющаяся система.
Корень инфантилизма: почему мы не можем взять ответственность за собственную жизнь

Инфантилизм, как форма психической защиты и сопротивления, проявляется чаще всего в активном нежелании, а в тяжелых случаях — просто неспособности человека брать ответственность за свои действия и вести себя как зрелый взрослый. Специально для Forbes Life гештальт-терапевт Валентин Оськин рассказывает, в чем заключаются причины инфантильного поведения и почему оно всегда становится следствием произошедшего с человеком на этапе взросления
Инфантилизм или инфантильность — это состояние психики, при котором взрослые люди регулярно проявляют незрелые и детские способы поведения: отсутствие автономности, стремление к зависимости, нежелание брать на себя ответственность, избегание конфликтов, эгоцентричный взгляд на мир.
Различные концепции инфантилизма встречаются в исследованиях и трудах об ответственности и безответственности всех классиков психотерапии и психологии, и в современном мире эта проблема остается более чем актуальной. На современного человека сваливается множество вариантов выбора, с которым необходимо определиться и — как следствие — нести за него ответственность. Порой выборов так много, что даже вполне взрослый и зрелый человек может ощутить сильнейшее желание сбежать и скинуть все проблемы на окружающих или на судьбу.
Инфантилизм как социо-психологическое явление не признается психическим расстройством, в отличие от инфантилизма, вызванного различными заболеваниями и патологиями физического развития. Признаки социального инфантилизма обычно являются частью более глобальных процессов внутри человека, инфантильное поведение всегда становится следствием произошедшего с человеком на этапе взросления, в те моменты, когда ребенок сталкивался с вопросами ответственности за свои поступки, виной.
Что включают в себя признаки инфантилизма
Инфантилизм, как форма психической защиты и сопротивления, подразумевает в большинстве случаев активное нежелание, а в тяжелых случаях неспособность человека брать на себя ответственность за свои действия и вести себя как зрелый взрослый. Людей, демонстрирующих инфантильные поведение и стиль жизни, часто называют безответственными, при этом само слово инфантильность несет в себе сильный стигматизирующий контекст. Важно осознать, что во многих случаях инфантильный человек демонстрирует отсутствие самостоятельности, эгоцентризм и склонность обвинять других в своих проблемах потому что он не умеет по-другому, в силу различных причин.
Признаки инфантилизма могут включать в себя:
- Недостаток самоконтроля: проблемы с контролем своих эмоций, частые истерики, когда что-то идет не так. Импульсивные действия, отсутствие размышлений о последствиях.
- Неспособность взять на себя ответственность: отчаянные попытки избежать столкновения с ответственностью за свою жизнь и выбор, неспособность либо колоссальные трудности даже с самым простым выбором, обвинения других в своих проблемах. Постоянные оправдания за свое поведение вместо того, чтобы признать свои ошибки и исправить их.
- Недостаток независимости: инфантильные люди могут сильно полагаться на поддержку других, будь то финансовая, эмоциональная или иная помощь. Им может быть трудно принимать решения или действовать без руководства или одобрения других. Это приводит к увеличению чувства собственной беспомощности, и зависимости от других людей.
- Склонность избегать конфликтов: стремление избегать конфликтов любой ценой, уклонение от от сложных ситуаций, страх встречаться с ними лицом к лицу.
- Острая потребность в мгновенном удовлетворении: нетерпение, большие трудности с тем, чтобы отсрочить удовлетворение сиюминутной потребности, импульса, выбор в пользу немедленного удовлетворения своих потребностей, вместо ожидания более удачного момента или просто растягивания удовольствия.
- Эгоцентризм — сложность с тем, чтобы с уважением относиться к чувствам других людей, при этом свои собственные потребности и желания ставятся выше чужих.
Материал по теме
Психологические причины инфантильности
Психологический или социальный инфантилизм может иметь ряд психологических причин, в том числе:
- Детская травма. Жестокое обращение или пренебрежение родителями ребенком в раннем возрасте, может привести к ряду психологических проблем, включая инфантилизм. Когда ребенок не получает заботу и поддержку, необходимых ему для того, чтобы стать здоровым взрослым, ему может быть трудно развить навыки и поведение, необходимые для самостоятельного функционирования. Хуже всего в этом смысле игнорирование и попустительство — здесь ребенок не получает не только заботу, но и здоровую критику, что сильно деформирует картину мира и пониманием собственных возможностей.
- Трудности эмоциональной регуляции: некоторые люди могут настолько сильно бороться со своими эмоциями, что это парадоксально начинает мешать им контролировать свои чувства и справляться с трудными ситуациями. Так может появиться страх собственных сильных эмоций, страх стыда и осуждения за них. И далее, чтобы не сталкиваться со своими эмоциями человек предпринимает все, в том числе избегает ответственности за свои действия и выбор.
- Эгоцентризм: обратная сторона попустительства – чрезмерная опека, которая заставляет человека верить, что все происходит по его желанию, и без его труда. Со временем это, с одной стороны, приводит к тому, что такие люди становятся нечувствительны к желаниям и потребностям других людей, будучи уверенными в том, что мир «крутится» вокруг них, а с другой, — в случае попадания в критическую или кризисную ситуацию, где необходимо совершать выбор и принимать решение, у них будет проявляться выученная беспомощность. Некоторые люди могут бороться с независимостью, сильно полагаясь на поддержку и руководство других. Из-за этого им может быть трудно принимать решения или действовать без одобрения других.
- Вина, стыд и контроль: если эти три компонента преобладают в родительском отношении к ребенку, то впоследствии оно может привести к тому, что с одной стороны уже взрослый человек будет отчаянно пытаться найти свое место под солнцем, а с другой постоянно сомневаться в себе, испытывая чувство вины за свои сомнения, и испытывать патологическую нужду во внешнем контроле, решении и одобрении своих действий.
Так или иначе инфантилизм и его проявление — это способ справиться со стрессом или травмой, полученной в детстве. Регрессируя в детское состояние, человек как бы возвращается в то время в своей жизни, когда чувствовал себя в безопасности. И часто это действительно так. Такая своеобразная адаптация, с одной стороны, охраняет от ужасов и боли прошлого, а с другой, мешает жить, как носителю, так и окружающим.
Одной из самых ранних и наиболее влиятельных работ в этой области выступает концепция Зигмунда Фрейда об «инфантильной сексуальности», в которой подчеркивалась важность опыта раннего детства в формировании взрослой личности. По Фрейду, развитие психики определяется способностью ребенка преодолевать Эдипов комплекс — стадию, на которой дети испытывают влечение к родителю противоположного пола и соревнуются с однополым родителем за привязанность к другому родителю. Согласно Фрейду, в здоровом варианте, это влечение со временем трансформируется в любовь и уважение к родителю. Однако если ребенок не может успешно пройти этот этап, это может привести к неразрешенным чувствам вины, обиды и стыда, которые могут сохраняться во взрослом возрасте и проявляться в виде инфантильного поведения.
Материал по теме
Инфантильность в повседневной жизни
В повседневной жизни такая незрелость может проявляться в самых разнообразных формах:
— Отсутствие трудоустройства при очевидной необходимости иметь доход и отсутствии оного. Сопротивление попыткам трудоустройства, попытки (часто безуспешные), добывать деньги в сомнительных местах.
— Застывшие трудности на работе, в учебе в личной жизни (особенно в части, связанной с финансовым успехом), решающиеся очевидными способами, но продолжающие существовать в том виде, в котором есть. Незрелому человеку очень трудно просто взять и сделать, даже если известно, что, где и сколько взять, а также, как и для чего делать.
— Явное или скрытое стремление к зависимости от кого-то более (сильного, значимого, умного, красивого, богатого – здесь возможны вариации и комбинации). Стремление к тому чтобы кто-то другой взял всю ответственность (а на деле не ответственность, а только ее неприятные части, вроде труда, дисциплины и т.д.) на себя, оставив в жизни человека только радость, счастье и наслаждение (как мама забирает все невзгоды у младенца когда приходит по первому его крику, целует, кормит, любит). Например, стремление, обычно из одних отношений немедленно уходить в другие — одно из проявлений незрелости. Обычно такое желание ещё сопровождается страхом быть покинутым.
— Расхождение слов с делами, частые обманы даже по мелочам, пустые обещания. Незрелым людям тяжело держать данные обещания, трудно находиться под «гнетом» обязательств.
— Сложность в поддержании самодисциплины, эмоциональная неустойчивость, проявляющаяся при первых трудностях, стремление все бросить, если не получается сразу и лучше всех. Неприятие истины о том, что успех дается регулярным трудом.
— Тотальная сложность в принятии концепции личной ответственности за собственную жизнь, в принятии идеи о том, что свобода = ответственность и одного без другого не бывает. Доминирование у человека идеи «свободы от…» над идеей «свободы для…», либо ее полное отсутствие.
Незрелое поведение часто стигматизируется обществом. Многие люди, страдающие от этого, испытывают стыд или смущение из-за своего поведения и могут пойти на многое, чтобы скрыть это от других (что обычно только ухудшает их положение). Важно понимать, что большинство людей у которые есть проблемы с ответственностью, часто не могут иначе. Это не оправдывает их, однако это важно учитывать при построении отношений и подходить к такому поведению с пониманием, поскольку для некоторых людей оно может быть глубоко укоренившимся механизмом преодоления.
Инфантилизация общества
Говоря об обществе, стоит отметить, что инфантилизации подвержен не только отдельные люди, но и целые сообщества. В последние годы растет беспокойство по поводу инфантилизации общества в целом. Этот феномен характеризуется отсутствием и избеганием ответственности, нежеланием противостоять трудным реалиям и предпочтением упрощенного, черно-белого мышления среди людей.
Вот некоторые примеры инфантилизации общества:
— Преобладание «фейковых новостей» и теорий заговора, продвигающих упрощенные объяснения сложных проблем.
— Рост «культуры отмены», при которой люди подвергаются наказанию или остракизму за выражение взглядов, которые считаются оскорбительными или политически некорректными. Это часто включает в себя тактику публичного порицания и издевательств, которые больше напоминают поведение на игровой площадке, чем зрелый дискурс.
— Прославление молодости и красоты в популярной культуре, продвигающее идею о том, что внешний вид является наиболее важным аспектом достоинства человека.
— Упрощение языка и дискурса, в котором сложные идеи сводятся к упрощенным лозунгам и коротким клипам.
— Чрезмерное использование технологий и социальных сетей, которые поощряют мгновенное удовлетворение и импульсивное поведение.
Все эти явления способствуют формированию культуры инфантилизма, при которой людей поощряют думать и вести себя как дети, а не зрелые, ответственные взрослые. Это может иметь серьезные последствия для отдельных людей и общества в целом, поскольку мешает нам справляться со сложными проблемами и находить осмысленные решения.