Показать сообщение отдельно
  #3 (permalink)  
Старый 19.11.2014, 13:44
Профессор
Отправить личное сообщение для Siend Посмотреть профиль Найти все сообщения от Siend
 
Регистрация: 04.02.2012
Сообщений: 196

Хм, ок, а такой вопрос, совсем наверное из основ для чайников:
var Car = (function(){
...
})

что означает такая запись?
Var Car = {} - это объект

fucntion Test(){}
Var Car = Test - это функция

даже пусть так:
Var Car = Test(){} тоже функция (наверное, не проверял),
но что означают круглые скобки вне функции (Test(){})?

Насколько я понимаю это должно быть как то с видимостью переменных связано?

Я к чему спрашиваю, у меня есть следующий код:
(напишу абстрактно, так быстрее и понятнее. Создаю свое собственное контекстное меню)

внешний.js

1.Документ готов:
2.Массив с пунктами и подпунктами Меню
3.Вспомогательные переменные (скорость появления и т.п.)
4.Создать несколько элементов div по клику на которые делать функцию Action
5.Вспомогательные функции нужные только для создания div
6.Функция Action
7.Отключаем контекстное меню
8.Добавляем обработчик правого клика мышки

В результате я хочу получить собственную контекстую менюшку, и возможность ее редактировать в стиле:
MyMenu.Size(30).Speed(10).AddMenu("Creat","Main"). AddMenu("Delete","Main") и т.п.

Как мне лучше поступить? Насколько я понимаю по примеру из вики мне нужно поступить так:

...
3.Вспомогательные переменные (скорость появления и т.п.)
var MyMenu=(function(){
функции обработки переменных (добавление изменение и т.п.)
})

4.Создать несколько элементов div по клику на которые делать
...

Или же так:
...
1.Документ готов:
var MyMenu=(function(){
2.Массив с пунктами подпунктами Меню
3.Вспомогательные переменные (скорость появления и т.п.)
функции обработки переменных (добавление изменение и т.п.)
})

4.Создать несколько элементов div по клику на которые делать
...

Т.е. Если я создам свои переменные внутри функции MyMenu я же их не увижу снаружи, а значит придется и все функции создания div и Action засовывать внутрь функции MyMenu, а мне кажется это не правильно.
Ответить с цитированием