Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Обход методов объекта Как? (https://javascript.ru/forum/events/41431-obkhod-metodov-obekta-kak.html)

bogong 13.09.2013 12:55

Обход методов объекта Как?
 
Запутался, заклинило ... Выручайте :)
Есть объект:
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 в котором и будет функция обхода всего объекта. Запутался в двух соснах ... Помогите

danik.js 13.09.2013 13:05

for (var key in object.flags ) {
    var property = object.flags[key];
    if (typeof property == 'function' && key != 'set') {
        property();
    }
}

bogong 13.09.2013 13:31

Разобрался ...
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");
		}
	},

bogong 13.09.2013 13:33

Не могу добавить плюсик ..., сайт ругается. Благодарю за помощь :)

bogong 13.09.2013 13:35

А какое решение более быстрое?

danik.js 13.09.2013 13:53

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


Часовой пояс GMT +3, время: 05:08.