我有一个带有布尔值的对象,一旦值为true,我想测试相同的值是否在我的对象中作为函数,如果有,那么我想调用该函数。我只需使用javascript就可以做到这一点。
但我正在寻找一些使用下划线的好方法..可能吗?
这是我的尝试:
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 :(得分:2)
functions
方法只接受一个参数。看起来你正在寻找这样的东西:
_.each(requiredViews , function(val,key){
if(val && _.contains(_.functions(that), key)) {
that[key]();
}
})
此外,在每次迭代时调用_.functions
似乎都很浪费,您可能希望像这样缓存它:
var funcs = _.functions(that);
_.each(requiredViews , function(val,key){
if(val && _.contains(funcs, key)) {
that[key]();
}
})
或者也许使用isFunction
:
_.each(requiredViews , function(val,key){
if(val) {
var func = that[key];
if (_.isFunction(func)) {
func();
}
}
})