在Javascript中使用Module Design Pattern时出现问题

时间:2014-09-23 07:57:32

标签: javascript design-patterns

我想在我的javascript代码中使用模块设计模式,但我在运行代码时遇到了奇怪的问题。它说“Uncaught SyntaxError:Unexpected token(”

我想问的另一个问题是编写模块模式设计的正确方法是什么?我试图调用其他对象的方法这样做是不是很好?

以下是我的JS代码。

JS代码

var importedArray = [];
var offlineTask = (function(importedArray){
 return {
    processOfflineConsolidation :function(){
      if(importedArray){ 
         if(true){
          QSTMRow.mergeQuestion();
        }else{
        alert('you cannot import data from another Visit\'s assignment');
        }
      }else{
        alert('Imported Array is not accessible or it is null');
      }
    }
  };
})(importedArray);

var QSTMRow = (function(){
        mergeQuestion : function(){      
          /*mergeScore('F.QST_COMP_SCORE',1);
          mergeScore('F.QST_MGMT_SCORE',1);
          mergeScore('F.QST_IMPL_SCORE',1);
          mergeScore('F.QST_ADDITIONAL_RESP1',1);
          mergeScore('F.QST_ADDITIONAL_RESP2',1);*/
        },

    return {
      mergeQuestion : mergeQuestion
    };
})();


offlineTask.processOfflineConsolidation();

JS Fiddle

1 个答案:

答案 0 :(得分:0)

如前所述,第二个模块的语法无效;你可能想要

var QSTMRow = (function(){
   return {
        mergeQuestion : function(){      
          /*mergeScore('F.QST_COMP_SCORE',1);
          mergeScore('F.QST_MGMT_SCORE',1);
          mergeScore('F.QST_IMPL_SCORE',1);
          mergeScore('F.QST_ADDITIONAL_RESP1',1);
          mergeScore('F.QST_ADDITIONAL_RESP2',1);*/
        }
   };
})();

var QSTMRow = (function(){
     var mergeQuestion = function(){      
          /*mergeScore('F.QST_COMP_SCORE',1);
          mergeScore('F.QST_MGMT_SCORE',1);
          mergeScore('F.QST_IMPL_SCORE',1);
          mergeScore('F.QST_ADDITIONAL_RESP1',1);
          mergeScore('F.QST_ADDITIONAL_RESP2',1);*/
     };

    return {
      mergeQuestion : mergeQuestion
    };
})();