我試圖開發一個小Spotify應用程序,但有一些問題。我有一個對象Foo
,我想保留在一個單獨的文件,並在我的主文件中需要。然後在我的主文件中,我想要創建如下對象:var baz = new Foo(some, arguments)
。但我無法讓它工作。Spotify應用程序,創建自定義模塊
我使用API的1.0版本,Spotify以某種形式使用requirejs,對吧?
例子:https://github.com/spotify/apps-tutorial/blob/1.0/js/tutorial.js
所以,我試圖做這樣用兩個文件,foo.js和main.js.做new Foo(..)
當
// 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;
});
這給了我一個錯誤「對象不是一個函數」中的主文件。
這是爲什麼?我想這是因爲我在foo.js中使用require()?那我應該用什麼呢?
編輯: 好了,看來我應該使用exports
,如:exports.myMethod = myMethod;
但後來我需要導出創建和其所有的實例方法等返回一個Foo對象的實例的方法, 對?
沒問題,雖然在你的例子中,Foo的值是foo函數,它足夠用於像往常一樣編寫你的函數,出口'你想要公開的。 –