функция в не очереди
Здравствуйте, подскажите пожалуйста вот есть 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, время: 09:35. |