powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / шаблоны javascript
4 сообщений из 4, страница 1 из 1
шаблоны javascript
    #36378734
musson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет)))
где можно почитать про такие конструкции
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
var imagelink = function ()
			{
				return{
					init:function(){alert("fff");}
				}
			}();
			
			imagelink.init();
интересуют нюансы, почему если убрать двойные скобки в конце, то конструкция работать не будет,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
var imagelink = function ()
			{
				return{
					init:function(){alert("fff");}
				}
			}();
			
			imagelink.init();

эти скобки указывают на немедленное выполнение функции, с ними функция как бы инициализируется?
Прочитал книгу JavaScript. Подробное руководство, 5-е издание , но чувствую мало(((
...
Рейтинг: 0 / 0
шаблоны javascript
    #36378740
musson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скобки не выделились житным,
Код: plaintext
1.
2.
3.
4.
5.
6.
var imagelink = function ()
			{
				return{
					init:function(){alert("fff");}
				}
			}(); <--вот эти скобки
...
Рейтинг: 0 / 0
шаблоны javascript
    #36379041
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант без скобок :
Код: plaintext
1.
2.
3.
4.
5.
var imagelink = function () {
	return {
		init:function(){alert("fff");}
	};
};

Здесь переменной imagelink присваивается созданная "на лету" объект-функция, которая при выполнении возвращает объект, в составе которого есть функция init. Теперь imagelink можно выполнить (дописав те самые скобки, которые убрали. Скобки, приписанные справа от функции, заставляют ее выполниться)
Код: plaintext
1.
2.
3.
imagelink();

imagelink().init(); /* функция вернула объект, у него тут же вызвали init */


Вариант со скобками :
Код: plaintext
1.
2.
3.
4.
5.
var imagelink = function () {
	return {
		init:function(){alert("fff");}
	};
}();

Здесь наша функция создается и тут-же выполняется, возвращая вышеописанный объект, и он будет присвоен переменной imagelink. Теперь можно вызвать так
Код: plaintext
imagelink.init();
...
Рейтинг: 0 / 0
шаблоны javascript
    #36379070
musson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо,
буквально 20 минут назад сам попробывал
imagelink().init(); и все заработало без скобок, и сразу осознал почему в одном варианте работает, а в другом нет)))
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / шаблоны javascript
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]