2014-06-07 3 views
0

부울 값이있는 객체가 있습니다. 값이 true이면 동일한 값을 테스트하고 싶습니다. 함수가있는 경우 객체가 있습니다. 그 함수를 호출하고 싶습니다. javascript를 사용하여이 작업을 수행 할 수 있습니다.underscorejs - 객체를 반복하고 객체에서 함수를 호출하는 방법

하지만 언더 스코어를 사용하여 좋은 방법을 찾고 있습니다 ... 가능합니까? 여기

내 시도입니다 :

떨어져에서
var requiredViews : { 
    "breadCrumbView": false, 
    "headerView": false, 
    "footerView": false 
} 
var that = this; 
_.each(requiredViews , function(val,key){ 
    if(val && _.contaions(_.functions(that, key))){ 
    that[key](); 
} 
}) 

개체에서 혼자 진정한 가치 키를 선택하고 전화를 할 수있는 바로 가기 방법이?

아무도 나에게 제안하나요?

+0

오포'_.contains()'? – chovy

답변

2

functions 메서드는 하나의 인수 만 취합니다.

var funcs = _.functions(that); 
_.each(requiredViews , function(val,key){ 
    if(val && _.contains(funcs, key)) { 
     that[key](); 
    } 
}) 

을 아니면 대신 isFunction를 사용 : 모든 반복이 낭비 것에, 당신이 이런 식으로 캐시 할 수 있습니다 _.functions를 호출, 또한

_.each(requiredViews , function(val,key){ 
    if(val && _.contains(_.functions(that), key)) { 
     that[key](); 
    } 
}) 

:이 같은 뭔가를 찾고있는 것 같다 :

_.each(requiredViews , function(val,key){ 
    if(val) { 
     var func = that[key]; 
     if (_.isFunction(func)) { 
      func(); 
     } 
    } 
}) 
관련 문제