이 전역 개체를 사용하는 것은 나를 위해 문제가되었습니다. 명시 적으로 요구하지 않고 위의 파일에서글로벌 객체를 사용하지 않고 뭔가를 goog.provide하는 방법이 있습니까?
goog.provide('app.a');
goog.require('app.b');
app.a = function() {
return [
app.b('Hey, there!'),
app.c('yo')
];
};
참고, 내가 app.c
을 사용하고 있습니다 :
a.js
에서 : 여기에 내 문제를 설명하는 간단한 예입니다.
b.js
에서 :
goog.provide('app.b');
goog.require('app.c');
app.b = function (msg) {
return app.c('b ' + msg);
};
c.js
에서 :
goog.provide('app.c');
app.c = function (msg) {
return { msg: msg };
};
나는 closurebuilder 통해 실행할 수 있습니다 그것은 잘 실행됩니다. 또한 브라우저에서 오류없이 실행됩니다. 그러나 나는 명시 적으로 요구하지 않고 app.c
을 사용할 수있는 방법을 좋아하지 않습니다.
가장 좋은 해결책은 각 파일이 goog.require
호출에서 빌드 된 app
전역 변수의 자체 복사본을 어떻게 든 사용할 수 있는지 여부입니다. 이로 인해 require
d가 아닌 무언가를 사용하려고하면 런타임 오류가 발생합니다. 이것이 가능한지 확실하지 않습니다.
내가 설명한 것에 대한 방법이 있습니까? 아니면 대안이 있습니까?