작은 Spotify 앱을 개발하려고하지만 몇 가지 문제가 있습니다. 오브젝트 Foo
을 별도의 파일에 보관하고 메인 파일에 필요합니다. 그런 다음 주 파일에서 var baz = new Foo(some, arguments)
과 같은 개체를 만들고 싶습니다. 그러나 나는 그것을 작동시킬 수 없다.Spotify app, 맞춤 모듈 만들기
나는 1.0 버전의 API를 사용하고 있으며, 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;
을하지만 내가 생성 등의 인스턴스 메서드의 모든으로 푸 개체의 인스턴스를 반환하는 방법을 내 보내야합니다 , 권리? 나는이처럼이 필요 main.js에서 다음
//foo.js
require(['$api/models'], function(models) {
var Foo = (function() {
var foo = function(some, arg) {
// Do stuff..
};
return foo;
})();
exports.Foo = Foo;
});
:
예에서 Foo의 값은 foo 함수이지만, 평소와 같이 함수를 작성하는 것으로 충분하며' 수출하고 싶다 '는 것이다. –