Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.09.2013, 11:55
Интересующийся
Отправить личное сообщение для bogong Посмотреть профиль Найти все сообщения от bogong
 
Регистрация: 13.10.2011
Сообщений: 24

Обход методов объекта Как?
Запутался, заклинило ... Выручайте
Есть объект:
var object={
	properties:{
		rootElement:"root",
		flags:{}
	},
	flags:{
		set:function(){

		},
		test1:function(){
			console.log("test1");
		},
		test2:function(){
			console.log("test2");
		},
		test3:function(){
			console.log("test3");
		},
		test4:function(){
			console.log("test4");
		}
	}
}

Нужно сделать вот что: автоматически обойти\исполнить все методы объекта object.flags за исключением метода set в котором и будет функция обхода всего объекта. Запутался в двух соснах ... Помогите
Ответить с цитированием
  #2 (permalink)  
Старый 13.09.2013, 12:05
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

for (var key in object.flags ) {
    var property = object.flags[key];
    if (typeof property == 'function' && key != 'set') {
        property();
    }
}
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 13.09.2013, 12:31
Интересующийся
Отправить личное сообщение для bogong Посмотреть профиль Найти все сообщения от bogong
 
Регистрация: 13.10.2011
Сообщений: 24

Разобрался ...
flags:{
		set:function(){
			for(var method in this){
				if(this.hasOwnProperty(method)&&method!=='set'){
					this[method]();
				}
			}
		},
		test0:function(){
			console.log("test0");
		},
		test1:function(){
			console.log("test1");
		},
		test2:function(){
			console.log("test2");
		},
		test3:function(){
			console.log("test3");
		},
		test4:function(){
			console.log("test4");
		}
	},
Ответить с цитированием
  #4 (permalink)  
Старый 13.09.2013, 12:33
Интересующийся
Отправить личное сообщение для bogong Посмотреть профиль Найти все сообщения от bogong
 
Регистрация: 13.10.2011
Сообщений: 24

Не могу добавить плюсик ..., сайт ругается. Благодарю за помощь
Ответить с цитированием
  #5 (permalink)  
Старый 13.09.2013, 12:35
Интересующийся
Отправить личное сообщение для bogong Посмотреть профиль Найти все сообщения от bogong
 
Регистрация: 13.10.2011
Сообщений: 24

А какое решение более быстрое?
Ответить с цитированием
  #6 (permalink)  
Старый 13.09.2013, 12:53
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Дык у меня просто идет еще проверка на то что свойство есть функция, а также предполагается что никто не засрал прототип объекта итерируемыми свойствами.
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить два разных значения одного объекта EvgeniyRRU Общие вопросы Javascript 5 21.09.2012 14:24
Как получить доступ к элементу объекта по "динамической цепочке" kaf Общие вопросы Javascript 4 15.09.2012 09:06
Как ключу объекта приравнять значение другого ключа? AquaGen Общие вопросы Javascript 3 20.08.2011 17:16
Объект как свойство объекта Cooskon Общие вопросы Javascript 6 16.02.2010 20:41
как узнать тип значения объекта? VHS Общие вопросы Javascript 1 07.01.2009 22:57