我是一名Java程序员,他试图将一些Applet转换为JavaScript。我有一个包含许多小型Java的案例,它们具有一个紧密的设计,如果可能的话我想在JavaScript中保留。 RequireJS似乎是保持模块化的好方法。
但是,我所看到的requireJS的所有教程都将模块视为只有一个函数,这只适用于我的几个Java类。例如,this tutorial将模块purchase.js
定义为具有单个函数purchaseProduct()
:
define(["credits","products"], function(credits,products) {
console.log("Function : purchaseProduct");
return {
purchaseProduct: function() {
var credit = credits.getCredits();
if(credit > 0){
products.reserveProduct();
return true;
}
return false;
}
}
});
有没有办法以这种方式允许每个模块有多个功能?在我看来,模块不一定只是一个功能。
或者,RequireJS是一个错误的树,是为了保留我的Java模块化设计而咆哮?
我找到了一组更有用的示例,用于在https://gist.github.com/jonnyreeves/2474026和https://github.com/volojs/create-template和Maven Archetype Catalog plugin
上使用requireJS从Java转换到JS答案 0 :(得分:2)
是的,这是一种方式而且非常简单。
请注意,您返回的内容(模块)只是一个对象。在您的代码中,此对象有1个属性(purchaseProduct
),但它可以包含您喜欢的数量。并且他们都不必担任以下职能:
return {
purchaseProduct: function () {/*...*/},
returnProduct: function () {/*...*/},
discountLevel: 0.25
};
答案 1 :(得分:1)
只需向返回的对象添加更多功能:
return {
purchaseProduct: function() {
// ...
},
somethingElse: function () {
// ...
}
}
如果您将此作为模块的值返回,则您将拥有一个导出两个函数purchaseProduct
和somethingElse
的模块。