CoffeeScript コードで JavaScript ライブラリ (sim.js) を再利用しようとしています。sim.js に付属する例では、「sim-0.26.js」、「buffet_restaurant.js」、および「buffet_restaurant.html」の 3 つのファイルが次のように接続されています (簡略化するためにいくつかのパラメーターを削除しました)。
「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 内の関数です。bucket_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
私はたくさんのことを間違っていると思います。私はこれらすべてにかなり慣れていません。
何か案は?