什么是#of; typeof define ===' function' &安培;&安培;定义[' AMD']'用于?

时间:2015-06-20 11:43:08

标签: javascript

以下代码的用途是什么?工厂功能在这做什么?这里的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['$']|| $);
    }

1 个答案:

答案 0 :(得分:19)

此代码检查是否存在require.js,一个JavaScript依赖关系管理库。

如果'define'未定义且它是一个函数并且'amd'(异步模块定义)也被定义,则代码假定require.js正在运行。

如果是这样,那么它定义'factory'并将jQuery作为依赖项传递给它。否则,它会通过将代码附加到根对象来设置代码所需的依赖项。

至于'工厂'是什么:它不是由Javascript框架定义的,它最有可能是同一个文件中的一个函数。它将采用参数jQuery。

相关问题