在AMD javascript模块中编写多个函数

时间:2015-06-09 20:23:54

标签: javascript gruntjs amd

我很擅长使用AMD编写javascript代码。我一直在想弄清楚如何在文件中编写多个函数:

define(function(){
  return {
    and: function(a,b){
      return (a&&b);
    }
  };

}

);

我尝试用以下方式编写另一个函数plus

define(function(){
  return {
    plus: function(a,b){
      return (a+b);
    }
  };

}

);

但是当我使用grunt进行测试时,它无法检测到函数加号

1 个答案:

答案 0 :(得分:2)

您应该将每个模块放在其自己的文件中。至少requireJS(您使用的是?)通过它的文件名(不带.js)确定模块名称。

因此,位于/modules/A.js的文件将具有模块名称" modules / A"。

如果你真的想在一个文件中定义多个模块,你可以用这样一种更明确的方式来实现:

define("A", [], function () { return ...whatever... });
define("B", [], function () { return ...whatever... });

编辑:

用于定义具有两个函数的一个模块,您可以使用不同的模式。对于单身人士(即没有"班级和#34;)我通常会这样做:

define(function () {
    var myModule = {
        fn1: function () { .... },
        fn2: function () { .... }
    };
    return myModule;
});