每个Jquery都没有显示对象内部的回调函数

时间:2017-10-03 09:21:36

标签: javascript jquery

我想执行一个回调函数,它在对象内部迭代,每次循环jquery。

让我说我有这个对象

public Employee GetEmployee(int id)
{
    return db.Employee.FirstOrDefault(n => n.Emp_Id == id);
}
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);
});

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

2 个答案:

答案 0 :(得分:2)

我编辑了您的代码段以执行对象中的功能

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>

答案 1 :(得分:0)

谢谢大家的回答。我发布的是一个示例代码。 我没有注意到一个愚蠢的事情,并在这里失去了一些观点。 下面的代码接近我一直在尝试的内容。

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;
}