每个未在对象内显示回调函数的jQuery



我想执行一个回调函数,该回调函数在对象内部的每个循环时都在对象内部。

可以说我有这个对象

var myVar = {
  firstObj: {
    name: 'something'
  },
  myFunc: function(value) {
    if (value != 'me') {
      return 'Name should be me';
    }
    return true;
  }
};
//I am iterating it in this way
$.each(myVar, function(index, object) {
  console.info(index, object);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

我试图在 console.info()中看到它,但它似乎没有出现

我编辑了您的摘要以在对象中执行函数

var myVar = {
  firstObj: {
    name: 'something'
  },
  myFunc: function(value) {
    if (value != 'me') {
      return 'Name should be me';
    }
    return true;
  }
};
//I am iterating it in this way
$.each(myVar, function(index, object) {
  if (typeof object == "function"){
      console.log(object('me'));
      console.log(object('not me'));
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

谢谢大家的答案。我发布的是示例代码。我没有注意到愚蠢的事情,在这里失去了一些分。以下是我一直在尝试的代码。

var myVar = {
            ruleOne     : {},
            checkName   : function(value) {
                if(value != 'me') {
                    return 'name should be me';
                }
                return true;
            }
        };
var collect = {rules: {}};      
$.each(myVar, function(index, object) {
    if($.isFunction(object)) {
        collect.rules[index]   = object;
    } else {
        collect.rules[index]   = {message: 'rule one message'};
    }
});
$.each(collect.rules, function(index, object) {
    console.info(index, object);
    if($.isFunction(object)) {
        return object('me');
    } else {
        // this function was making it go out of iteration and not printing further elements
        return checkRuleOne();
    }
});
function checkRuleOne() {
    //some logic returning false
    return false;
}

最新更新