var ActionItemModule = (function () {
    var newAIID = 0; //new action item id
    var dataReadyFlag = false;
    return {
        setData: function (data) {
            setActionItems(data["actionitems"]);
        },
        getData: function () {
            return getActionItems();
        },
        validateData: function () {
            return checkActionItems();
        },
        addRow: function () {
            addActionItem();
        },
        removeRow: function () {
            removeActionItem();
        },
        setWorkMode: function (mode) {
            if (!dataReadyFlag) {
                setTimeout("ActionItemModule.setWorkMode('" + mode + "')", 500);
                return;
            }
            doSetWorkMode(mode);
        }
    };红字部分的这种写法是什么意思??求解答啊!

解决方案 »

  1.   

    var ActionItemModule = (function () 这个定义的变量干嘛的啊   return {
    setData:function (data) {
    setActionItems(data["actionitems"]);还有这个setData:function(data) 又是什么意思?
      

  2.   


    1、(function(){})()
    这种结构式一个匿名函数,匿名函数其中的一种形式就是这样,之所以用括号包起来并且在最后加一个括号是为了调用这个匿名函数。
    这样写的好处是里边的变量都是封闭的,不对外开放,减少了全局变量带来的混乱。
    2、
      setData:
    这里return 的是一个对象 setData我们可以理解为方法变量
      

  3.   

       那定义这个方法变量 setData有什么用呢
      

  4.   


    打个比方:
    var jQuerys = (function () {
        return { setData: function () { alert("11111") } }
    })();
    alert(jQuerys.setData());
    //你看下 这个就可以好理解啦吧