Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何编写与AMD兼容的JavaScript类?_Javascript_Amd - Fatal编程技术网

如何编写与AMD兼容的JavaScript类?

如何编写与AMD兼容的JavaScript类?,javascript,amd,Javascript,Amd,编写AMD兼容JavaScript类作为模块化应用程序的一部分的最佳方法是什么 我通常使用单例方法编写类。除非有什么诀窍可以让它与AMD一起工作,否则它看起来是不兼容的。好吧,我们使用AMD,我们的大多数文件都是单例文件。实际上,我们并没有真正声明一个“类”只能使用一次(单例)——我们专门定义了一个对象实例,尽管对某些人来说这只是技术上的区别。下面是一个例子: // mylib.js define(["otherlib"], function(otherlib) { return { d

编写AMD兼容JavaScript类作为模块化应用程序的一部分的最佳方法是什么


我通常使用单例方法编写类。除非有什么诀窍可以让它与AMD一起工作,否则它看起来是不兼容的。

好吧,我们使用AMD,我们的大多数文件都是单例文件。实际上,我们并没有真正声明一个“类”只能使用一次(单例)——我们专门定义了一个对象实例,尽管对某些人来说这只是技术上的区别。下面是一个例子:

// mylib.js
define(["otherlib"],

function(otherlib) {

return {
  doThing: function() {
    return otherlib.action("thing");
  }
};
});

如果您想知道:需要这个文件7次,实际上每次都会返回相同的对象—它不会被重新创建。

我刚刚遇到UMD()。它提供了几个如何添加AMD/CJS兼容性的示例(从野外汇总)。常见的主题似乎是调用一个工厂方法(可以根据环境动态选择),然后传入一个“正常”的IIFE。优秀的示例列表!谢谢