функция в не очереди
Здравствуйте, подскажите пожалуйста вот есть 2 функции и один созданный объект
var MHS = { listingId: 0 } function first(id) { MHS.listingId = id; } function last() { $(document).click(function() { alert(MHS.listingId) }) } last(); first(111); как видно я запускаю сперва функцию last, а потом first(111) и в ней перезаписываю свойство listingId объекта MHS дальше $(document).click при клике на документ выводит перезаписанный объект 111 все нормально работает, вопрос в том можно ли так делать? Типа сперва запустить функцию которая ниже функции first И если можно объясните почему оно работает, а то в учебниках тяжело найти такой ответ ) |
Цитата:
function first() {} last(); first(); function last() {} Главное чтобы функция была объявлена в той же области видимости. |
danik.js, Так это получается в любом месте можно обратится к функции если прописать ее в томже файле где она была создана?
А когда я впервые просматривал книгу по js там было написано что нужно чтобы функция была выше чем обращение к ней ) |
Цитата:
функция-объявление: function fn() {} и функция-выражение: var fn = function() {} В первом случае расположение не имеет значения. Во втором конечно же переменная должна быть объявлена перед использованием. Цитата:
function abc() { function fn() {} } fn() // Ошибка! function fn() {} function abc() { fn() // ОК! } function abc() { function fn() {} fn() // ОК! } Впрочем тут та же логика что и с переменными. |
Цитата:
|
danik.js, спасибо за объяснения
|
рони, О ясно и понятно все написано спасибо за ссылку
|
danik.js,
рони, Если можно подскажите как такое работает Вроде это получается Function Expression но оно както работает var os = { one: function () { this.two(22); }, two: function(id) { alert(id) }, } os.one(); |
Это функция ссылка на которую воткнута свойством объекта, типа метод.
|
Цитата:
Запрограммировать прерывание можно в каком угодно месте до того, как оно потребуется. Как правило такие вещи вешают на событие загрузки страницы. |
Часовой пояс GMT +3, время: 17:09. |