Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.05.2015, 17:46
Аватар для Sanu0074
Аспирант
Отправить личное сообщение для Sanu0074 Посмотреть профиль Найти все сообщения от Sanu0074
 
Регистрация: 16.12.2012
Сообщений: 80

Вызов свойств объектов из массива или объекта с параметрами
Допустим у нас есть несколько объектов:
$.Nav = {
        init: function(){
            return this;
        },

        begin: function(){
            alert('begin nav');
        },

        destroy: function(){
            alert('destroy nav');
        }
    }

    $.Nav2x = {
        init: function(){
            return this;
        },

        begin: function(){
            alert('begin Nav2x');
        },

        destroy: function(){
            alert('destroy Nav2x');
        }
    }
	
    $.Nav3x = {
        init: function(){
            return this;
        },

        begin: function(){
            alert('begin Nav3x');
        },

        destroy: function(){
            alert('destroy Nav3x');
        }
    }


Есть строка с параметрами в которой говорится какие объекты будут запускаться:
var params = {"Nav3x","Nav2x"};


И где-то дальше есть функции которые управляют объектами переданными в params:
function toDo(){
		//тут должны вызваться методы "begin" всех объектов
		//которые есть в params
	}
	
	function toStop(){
		//тут должны вызваться методы "destroy" всех объектов
		//которые есть в params
	}


Каким образом можно реализовать тела функций toDo() и toStop() ?
Ответить с цитированием
  #2 (permalink)  
Старый 21.05.2015, 17:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 25,642

Сообщение от Sanu0074
var params = {"Nav3x","Nav2x"};
может [] ?
Ответить с цитированием
  #3 (permalink)  
Старый 21.05.2015, 18:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 25,642

Sanu0074,
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(function(){
    $.Nav = {
        init: function(){
            return this;
        },

        begin: function(){
            alert('begin nav');
        },

        destroy: function(){
            alert('destroy nav');
        }
    }

    $.Nav2x = {
        init: function(){
            return this;
        },

        begin: function(){
            alert('begin Nav2x');
        },

        destroy: function(){
            alert('destroy Nav2x');
        }
    }

    $.Nav3x = {
        init: function(){
            return this;
        },

        begin: function(){
            alert('begin Nav3x');
        },

        destroy: function(){
            alert('destroy Nav3x');
        }
    }
   var params = ["Nav3x","Nav2x"];
   function test(params,metod)
   {
      $.each(params, function(){
         $[this][metod]()
         });
   }
  function toDo(){
       test(params,'begin')
	}

	function toStop(){
		test(params,'destroy')
	}
  toDo()
  toStop()
});




  </script>
Ответить с цитированием
  #4 (permalink)  
Старый 22.05.2015, 09:50
Аватар для Sanu0074
Аспирант
Отправить личное сообщение для Sanu0074 Посмотреть профиль Найти все сообщения от Sanu0074
 
Регистрация: 16.12.2012
Сообщений: 80

Вот я сделал кусок кода, выдает ошибку где console.log(.params) - будто undefined
Вот я написал что:
$.Enquire = ({
        MOBILE: "screen and (max-width:480px)",
        TABLET: "screen and (max-width: 992px)",
        DESKTOP: "",
        params: ["Nav"],
        init: function(){

            console.log('Eq init');

            enquire.register(this.TABLET, {
                deferSetup: true,
                setup: function () {

                },
                match: function () {
                    console.log('match');
                    console.log($.Enquire.params);
                    $.Enquire.params.forEach(function(v){$[v].begin()});
                },
                unmatch: function () {
                    console.log('UNmatch');
                    $.Enquire.params.forEach(function(v){$[v].destroy()});
                }
            });
        }
    }).init();
Ответить с цитированием
  #5 (permalink)  
Старый 22.05.2015, 10:18
Аватар для Sanu0074
Аспирант
Отправить личное сообщение для Sanu0074 Посмотреть профиль Найти все сообщения от Sanu0074
 
Регистрация: 16.12.2012
Сообщений: 80

упс, понял) $this = this; спасибо))
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Canvas. Как сделать или вообще нельзя? Вращение рандомизированно изменяемого объекта. Zemsky Общие вопросы Javascript 30 19.12.2013 17:44
Событие внутри функции или объекта shaltay Общие вопросы Javascript 2 27.06.2013 17:05
Видимость свойств объекта из внутренних функций kasper_tpk Events/DOM/Window 10 25.12.2011 15:46
Массив объектов или объект объектов vladlen Общие вопросы Javascript 19 30.10.2010 02:10
Не работает перебор свойств объекта BANick Общие вопросы Javascript 1 16.09.2008 21:46