在Require.js中,如果require()是一个函数,那么require.config()是怎么存在的呢?

In Require.js, if require() is a function, how does require.config() exist?

这个问题更多地是关于 javascript 对象的一般工作方式,而不是 Require.js 具体工作方式。

假设我有一个名为 require:

的函数
var require = function(){/*cool stuff*/};

require 不是 javascript 对象。它没有名为 "config" 的密钥。因此 require.config 的概念对我来说没有意义。

然而在 Require.js 中,require.config 实际上是一个有效的函数。

这怎么可能?

RequireJS 只是定义了一个名为 require 的函数,然后在其上定义了一个 config 属性 ,它的值是一个函数。它所做的一个非常简短的表示是这样的:

require = function () {}
require.config = function () {}

这是可行的,因为正如在您的问题的评论中已经指出的那样,函数 JavaScript 中的对象。