以下代码的用途是什么?工厂功能在这做什么?这里的root是window对象。工厂是默认的java脚本功能吗?在什么样的场景中可以使用这种类型的代码。此代码来自toggle.js from Simon Tabor。 Zepto和ender是图书馆。这主要用于图书馆。
if (typeof define === 'function' && define['amd']) {
define(['jquery'], factory);
} else {
factory(root['jQuery'] || root['Zepto'] || root['ender'] || root['$']|| $);
}
答案 0 :(得分:19)
此代码检查是否存在require.js,一个JavaScript依赖关系管理库。
如果'define'未定义且它是一个函数并且'amd'(异步模块定义)也被定义,则代码假定require.js正在运行。
如果是这样,那么它定义'factory'并将jQuery作为依赖项传递给它。否则,它会通过将代码附加到根对象来设置代码所需的依赖项。
至于'工厂'是什么:它不是由Javascript框架定义的,它最有可能是同一个文件中的一个函数。它将采用参数jQuery。