0

我有以下代码(为清楚起见进行了整理):

if ( typeof CPM == "undefined" || !CPM) {var CPM={};}

(function(){
  CPM.process = {
    createStyles: function() {
      //Do style processing
      alert("processing styles");
    },
    createClasses = {
      //Do style processing
      alert("processing classes");      
    },
    init: function(){CPM.process.createStyles()}
  };
})();

init 是公司使用的约定,出于其他原因必须存在。我要避免的是对 init 的附加函数调用。是否有另一种方法来编写相同的 init 并避免创建函数上下文?像:

init: CPM.process.createStyles

以上失败,但我试图看看是否有任何其他方式来实现优化

4

1 回答 1

3

直接设置init: CPM.process.createStyles失败,因为在键分配时尚CPM.process未定义。init您需要分两步构建您的对象:

  CPM.process = {
    createStyles: function() {
      //Do style processing
      alert("processing styles");
    },
    createClasses = {
      //Do style processing
      alert("processing classes");      
    }
  };
  CPM.process.init = CPM.process.createStyles;

或者您可以使用外部函数定义并将其分配给两个键:

  function createStyles() {
    //Do style processing
    alert("processing styles");
  }
  CPM.process = {
    createStyles: createStyles,
    createClasses = {
      //Do style processing
      alert("processing classes");      
    },
    init: createStyles
  };
于 2012-10-18T14:58:47.390 回答