RequireJS库定义说明

2022-02-28 00:00:00 javascript requirejs

我开始阅读有关RequireJS的几个教程。其中没有一个"定义"关键字为我做了令人满意的解释。有人能帮我做以下事情吗?

define(
  ["Models/Person", "Utils/random", "jquery"], 
  function (Person, randomUtility, $) {..}
)  

什么是"定义"?是否定义一个包含数组和匿名函数的函数?还是因为别的原因?有人能给我更多关于这种定义的信息吗?

附加内容:感谢nnnnnn和prdeek的回答。在欧洲,当我贴出这个问题的时候,已经是深夜2:30了。可能因此我没有认识到这是一个简单的函数调用。


解决方案

define不是RequireJS特有的,它是AMD specification的一部分。Burke会注意到RequireJS并没有实现AMD指定的确切方式,因为AMD实际上并没有考虑到浏览器。

define中没有匿名函数。define是一种可用于基于AMD的JavaScript文件加载其数据的方法。像RequireJS这样的库使您可以使用它。具体的实现可能对您没有价值。因此,我将复习一下您提供的方法,因为它是声明模块的最常用方法。

define([array]object);

Array是此模块依赖的模块列表。模块和文件之间存在1对1的关系。一个文件中不能有多个模块,一个模块也不能有多个文件。

对象是您正在定义的模块。它可以是任何东西,可以是结构,也可以是返回结构的函数。有关详细信息,请阅读RequireJS上的文档。

如果object是函数,则传递给该函数的参数是在第一个定义参数中作为依赖项列出的模块。同样需要注意的是,当您将函数作为object传递时,它只会运行一次。但是,在此实例化上创建的方法或属性可以随时访问,然后可以由将此模块列为依赖项的其他模块访问。

祝您好运,我建议您玩这个游戏,并在事情没有意义时阅读文档。RequireJS文档非常适合作为AMD模块工作原理的快速入门。

相关文章