小さな Spotify アプリを開発しようとしていますが、いくつか問題があります。Foo
別のファイルに保持し、メイン ファイルで必要とするオブジェクトがあります。次に、メイン ファイルで次のようなオブジェクトを作成しますvar baz = new Foo(some, arguments)
。しかし、私はそれを機能させることができません。
私は 1.0 バージョンの API を使用していますが、Spotify は何らかの形で requirejs を使用していますよね?
例: https://github.com/spotify/apps-tutorial/blob/1.0/js/tutorial.js
そこで、foo.js と main.js の 2 つのファイルを使って、このようにしてみました。
// main.js
require([
'$api/models',
'foo'], function(models, Foo) {
var f = new Foo("hello", "world");
...
});
// foo.js
// define() doesn't work? So I tried with require again...?!
require(['$api/models'], function(models) {
function Foo(some, arg) {
this.some = some;
this.arg = arg;
}
Foo.prototype.getSome() { return this.some; }
return Foo;
});
これにより、実行時にメインファイルに「オブジェクトは関数ではありません」というエラーが表示されますnew Foo(..)
。
何故ですか?foo.js で require() を使用しているからだと思いますか? その場合、代わりに何を使用すればよいですか?
編集:わかりましたので、次のように使用する必要があるようですexports
:exports.myMethod = myMethod;
しかし、その後、Foo オブジェクトのインスタンスを作成して返すメソッドと、そのすべてのインスタンス メソッドなどをエクスポートする必要があります。