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

Writing multiple functions in AMD javascript module

我对使用 AMD 编写 javascript 代码还很陌生。我一直在弄清楚如何在一个文件中编写多个函数:

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

}

);

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

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

}

);

但是我用grunt测试的时候,检测不到plus的功能

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

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

如果你真的想在一个文件中定义多个模块,你可以像这样以更明确的方式进行:

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

编辑:

为了定义具有两个功能的一个模块,您可以使用不同的模式。对于单身人士(即没有 "Class"),我通常会这样做:

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