powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Динамически загружаемый скрипт. Что происходит?
12 сообщений из 12, страница 1 из 1
Динамически загружаемый скрипт. Что происходит?
    #35141737
sandreynik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос чисто теоретический.
Пусть я загружаю динамически определенный скрипт.
Он в свою очередь загружает другой скрипт. И т.д.
В своем роде рекурсия.
Пусть все эти скрипты содержат функцию с одним названием например f.
Вопрос: Каждая последующая функция f будет переопределять предыдущую или будет самостоятельной.
Сразу оговорюсь я новичок в JavaScript. Вопрос зачем это надо тоже не уместен. Просто теоретическое измышление.
...
Рейтинг: 0 / 0
Динамически загружаемый скрипт. Что происходит?
    #35141767
Ghirik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще, это глупо и не корректно. Это, скорее, всего просто не будет работать. Потому как выводя динамически ваши функции, Вы создаете тело документа. А последующий вызов функции с именем f.... Крикеите громко на базаре любое имя... Сколько вы увидите глаз одновременно. :)
...
Рейтинг: 0 / 0
Динамически загружаемый скрипт. Что происходит?
    #35141777
sandreynik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да нет. Работает. Просто вопрос заключается в том, что если я могу динамически подгружать скрипты,я хочу знать что происходит.
...
Рейтинг: 0 / 0
Динамически загружаемый скрипт. Что происходит?
    #35141851
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
f - это не только имя функции, это ещё и название переменной, содержащей ссылку на функцию. Задав новое значение переменной на любом этапе ты затираешь её старое значение, это очевидно.

function f() { alert(1); }
f = function() { alert(2); }
f(); ---> 2
...
Рейтинг: 0 / 0
Динамически загружаемый скрипт. Что происходит?
    #35141882
sandreynik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
зыf - это не только имя функции, это ещё и название переменной, содержащей ссылку на функцию. Задав новое значение переменной на любом этапе ты затираешь её старое значение, это очевидно.

function f() { alert(1); }
f = function() { alert(2); }
f(); ---> 2

Отлично предскажи результат
function f() { alert(1); }
document.onmousedown = f;
f = function() { alert(2); }
f();

Что появится после нажатия мыши?
...
Рейтинг: 0 / 0
Динамически загружаемый скрипт. Что происходит?
    #35142184
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sandreynik
Отлично предскажи результат
function f() { alert(1); }
document.onmousedown = f;
f = function() { alert(2); }
f();

Что появится после нажатия мыши?
так, загни свою предсказалку обратно, ок?
я тебе отвечал на конкретный вопрос:
sandreynikКаждая последующая функция f будет переопределять предыдущую или будет самостоятельной.
зыЗадав новое значение переменной на любом этапе ты затираешь её старое значение, это очевидно.
Если ты куда-то копировал предыдущее значение, то сам подумай, что будет
...
Рейтинг: 0 / 0
Динамически загружаемый скрипт. Что происходит?
    #35148210
sandreynik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо
Почему в первом варианте по нажатию мыши выскочит 1.
А во втором 2.
Вроде должно в обоих вариантах затереть старое значение

1 вариант
function f() { alert(1); }
document.onmousedown = f;
f = function() { alert(2); }
f();



2 вариант
function f() { alert(1); }
document.onmousedown = f;
function f() { alert(2); }
f();
...
Рейтинг: 0 / 0
Динамически загружаемый скрипт. Что происходит?
    #35148235
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ключевое слово - копия. Ты копируешь значение переменной
если у тебя будет
var i = 0;
var j = i;
i = 1;

j ведь в этом случае не примет значение 1, правильно?
...
Рейтинг: 0 / 0
Динамически загружаемый скрипт. Что происходит?
    #35148277
sandreynik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все верно. не примет.
Но получается что во втором случае когда я переопределяю функцию она также переопределяет все копии.
Так что ли?
...
Рейтинг: 0 / 0
Динамически загружаемый скрипт. Что происходит?
    #35148338
sandreynik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я почему хочу узнать механизм. Допустим я динамически загружаю чужой скрипт. Если в нем существует одноименная функция с уже существующей, то она переопределит все предыдущии функции. А это уже бардак.
...
Рейтинг: 0 / 0
Динамически загружаемый скрипт. Что происходит?
    #35148557
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так, понял тебя, действительно переопределяет глобально... хм.. сейчас подумаю
...
Рейтинг: 0 / 0
Динамически загружаемый скрипт. Что происходит?
    #35148586
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мда, действительно, вопреки логике переопределяет функцию глобально.
в общем чтобы такое не происходило, я предпочитаю инкапсулировать функции в замыкания и объекты, чтобы было как можно меньше коллизий имен, например:

var foo = (function() {
var a = 1;
function helper() {
alert(a);
}
return {
bar: function() { helper(); }
}
})();

foo.bar();
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Динамически загружаемый скрипт. Что происходит?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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