是什么让这两个require.js调用彼此不同?

时间:2014-06-21 13:44:23

标签: javascript jquery knockout.js requirejs hottowel

我目前正在试验Hot Towel SPA Template,如果我理解正确的话,它会为Durandal定义这两个库。但我无法弄清楚这两个电话之间的确切区别:

// Durandal 2.x assumes no global libraries. It will ship expecting 
// Knockout and jQuery to be defined with requirejs. .NET 
// templates by default will set them up as standard script
// libs and then register them with require as follows: 
define('jquery', function () { return jQuery; });
define('knockout', ko);

define('knockout', function () => { return ko; });?会这样做吗?

1 个答案:

答案 0 :(得分:1)

对于前者,我们定义了一个名为'jquery'的模块,并在全局命名空间中定义。

在后者的情况下,我们定义了一个模块,其引用在require路径中定义。

两种情况的效果相同。 Hot Towel的创建者John Papa建议使用require定义第三方模块。相反,应该以这种方式定义一个人自己的模块。当然,jQuery和Knockout在Durandal框架中是例外,因为它们是Durandal框架的部分

但John提出建议的原因在于如何设计第三方框架的所有技术细节。有时候你需要垫片,有时不是。有时您必须返回窗口上定义的内容,有时不返回。有时存在顺序依赖关系或辅助库依赖关系(反过来,它们也有自己的特性)。