JavaScript中的define(function(require){...})到底是什么意思?

7
我理解define用于定义模块,function是一个匿名函数,但是函数中的参数'require'代表什么意思呢?
如果我在define(function(require){...})中写入任何内容,那么它会在什么时候被调用?如何调用这个匿名函数?
请帮忙,我是JS初学者。

2
你有没有尝试在 RequireJS 文档中了解更多关于它是如何工作的呢? - Matías Fidemraizer
1
是的,我了解RequireJS,但是它们在那里使用的是require()作为函数,而不是作为参数。当它作为参数传递时,我不明白function(require)中实际传递了什么。 - Tehreem
1
可能是[JavaScript中define的用途(除了显而易见的)]的重复问题。(https://dev59.com/o2kv5IYBdhLWcg3wzkDa) - Artjom B.
1个回答

6

这是requireJs api的一部分,不是原生的JS。

您可以在此处查看完整文档:http://requirejs.org/docs/api.html#define

在上面的示例中,“ require”实际上是“ require”代码,这种模式允许您要求JS文件并且只有在加载JS文件完成后,才在先前所需的文件范围内加载其他依赖项。

总的来说,这种模式允许您将应用程序拆分为多个小的JS文件,并以异步方式加载它们,以加快Web页面的加载过程。

有些人可能会认为当SPDY和HTTP2被更广泛使用时,这些都将变得不那么必要。无论如何,这肯定促进了更好的代码设计可重用性。


定义(function(require) { var angular = require('angular'); var html = require('text!./productPage.html'); var css = require('css!./productPage'); var productDesc = require('./../productDesc/productDesc'); });这是代码,这里的 function(require)require(some text) 是一样的吗?而且这个特定的函数什么时候会从html页面中调用? - Tehreem
不一样。require是一个回调函数,只有当内部实现准备好调用它时才会被调用。如果你只是这样做,require(some text),那么这个方法就会立即被调用,而requireJs代码可能还没有准备好在那个时候被调用。 - JAR.JAR.beans
我尝试在console.log中打印require,结果如下: `function localRequire(deps, callback, errback) { var id, map, requireMod; if (options.enableBuildCallback && callback && isFunction(callback)) { callback.__requireJsBuild = true; } if (typeof deps === 'string') { if (isFunction(callback)) { //Invalid call return } ` - Tehreem

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接