我正在尝试在 CoffeeScript 代码中重用 JavaScript 库(sim.js)。在 sim.js 附带的示例中,有 3 个文件,“sim-0.26.js”、“buffet_restaurant.js”和“buffet_restaurant.html”,像这样连接在一起(为了简化,我删除了一些参数):
在“buffet_restaurant.html”里面,有
<script type="text/javascript" src="./buffet_restaurant_files/sim-0.26.js"></script>
<script type="text/javascript" src="./buffet_restaurant_files/buffet_restaurant.js"></script>
<script type="text/javascript">
$(function () {
$("#run_simulation").click(function () {
var results = buffetRestaurantSimulation();
...
其中 BuffetRestaurantSimulation 是 Buffet_restaurant.js 中的一个函数。Buffet_restaurant.js 中的代码是这样开始的:
function buffetRestaurantSimulation()
{
var sim = new Sim();
...
其中 Sim 在 sim-0.26.js 中定义,如下所示:
function Sim(){...};
这个例子运行良好。我想在 node.js 的 CoffeeScript 文件中重用“Sim”。所以我试试这个(从 jasmine-node 调用):
sjs = require "./sim-0.26.js"
mysim = new sjs.Sim()
其中 sim-0.26.js 与 testsim.spec.coffee 位于同一目录中,该文件包含此代码。当我使用以下方法调用它时:
jasmine-node --coffee ./testsim.spec.coffee
我明白了:
mysim = new sjs.Sim();
^
TypeError: undefined is not a function
我怀疑我做错了很多事情。我对这一切都很陌生。
有任何想法吗?