Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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
Javascript 什么是';定义的类型===';功能'&&;定义[';amd';]';用来做什么?_Javascript - Fatal编程技术网

Javascript 什么是';定义的类型===';功能'&&;定义[';amd';]';用来做什么?

Javascript 什么是';定义的类型===';功能'&&;定义[';amd';]';用来做什么?,javascript,Javascript,以下代码的作用是什么?工厂功能在这里做什么?这里根是窗口对象。factory是默认的java脚本函数吗?在什么样的场景中可以使用这种类型的代码。此代码来自。Zepto和ender是库。这主要用于图书馆 if (typeof define === 'function' && define['amd']) { define(['jquery'], factory); } else { factory(root['jQuery'] || ro

以下代码的作用是什么?工厂功能在这里做什么?这里根是窗口对象。factory是默认的java脚本函数吗?在什么样的场景中可以使用这种类型的代码。此代码来自。Zepto和ender是库。这主要用于图书馆

   if (typeof define === 'function' && define['amd']) {
        define(['jquery'], factory);
     } else {
      factory(root['jQuery'] || root['Zepto'] || root['ender'] || root['$']|| $);
    }

此代码检查是否存在JavaScript依赖项管理库

如果“define”不是未定义的,并且它是一个函数,并且还定义了“amd”(异步模块定义),那么代码假定require.js正在使用

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


至于“工厂”是什么:它不是由Javascript框架定义的,它很可能是同一文件中的一个函数。它将接受参数jQuery。

它是require.jsI的一部分,我还有一个问题。在中,我可以看到
typeof define==='function'&&define.amd?定义(工厂)
。在没有库名称的情况下定义工厂的目的是什么?当我需要它时,我将如何访问它?我的意思是我不能编写像
require(['vue'],vue=>console.log
)这样的东西。它对我不起作用,因为库的定义没有名称。谢谢我只是想澄清一下。我无法在我的
窗口
上获取Vue,也无法使用
require
获取Vue,因为我获取的是
不匹配的匿名define()模块
。我们不能使用匿名定义:在它自己的脚本标记中有一个匿名定义(“调用define()的模块,没有字符串ID”)(我假设它们实际上是指全局范围内的任何地方)。因此,我不明白为什么框架以这种方式实现这个
定义
逻辑。再次感谢!我不知道vue.js你应该问一个全新的问题。