Вызов функции из функции
//вызов главной функции, когда карта готова ymaps.ready(init); //главная функция function init() { //здесь описание всех функций function func1(){ //тело } function func2(){ //тело } function funcN(){} } При использовании api яндекс карт от функции "init()" отказаться нельзя, но при этом есть необходимость обращаться к func1(), func2() вне функции "init()", как это возможно сделать? Это читал не помогло! При чем функцию по событию можно вызвать следующим образом: //вызов главной функции, когда карта готова ymaps.ready(init); //главная функция function init() { document.getElementById('id').[событие] = function(){ //тело } } Но если одну и ту же функцию нужно вызывать по нескольким событиям - то такой способ не удобен Быть может есть что то вроде, это могло бы упростить задачу: document.getElementById('id1').[событие] || (document.getElementById('id2').[событие]) = function(){ //тело } Спасибо за внимание, надеюсь на помощь - очень хочется разобраться1 |
Цитата:
/* так создать */ var o=new init(); /* так вызывать */ o.func1run(); o.func2run(); //главная функция function init() { //здесь описание всех функций function func1(){ //тело alert(1) }; /* это нужно дописать */ this.func1run = func1; function func2(){ //тело alert(2); }; /* это нужно дописать */ this.func2run = func2; }; |
Но предупреждали! :stop:
Цитата:
|
Цитата:
|
Есть какие то минусы от загрязнения комнаты, кроме того что можешь вляпаться в грязь?
|
Цитата:
Нашёл, что могут быть проблемы ещё с подключаемыми библиотеками, спасибо) |
Если ты пишешь код один - то почти никаких.
Если же используются сторонние скрипты или код пишет кто-то ещё, то могут возникнуть коллизии. В лучшем случае код перестанет работать, в худшем - неуловимые баги. |
Цитата:
|
Ну чтоб не загрязнять глобальную область можно просто ограничиться своей функцией:
(function(){ var func1, func2, funcN; ymaps.ready(init); //главная функция function init() { //здесь описание всех функций func1 = function func1(){ //тело } func2 = function func2(){ //тело } funcN = function funcN(){} } }());Только, само собой, надо учитывать, что пока ymaps не загрузится и не запустит init - функции доступны не будут. |
Цитата:
|
Часовой пояс GMT +3, время: 03:35. |