【发布时间】:2013-07-26 19:59:24
【问题描述】:
我正在尝试开发一个小型 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 这两个文件来这样做。
// 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 对象的实例及其所有实例方法等,对吗?
【问题讨论】:
标签: javascript spotify