app.js 및 utils.js 두 개의 파일이 Gulp를 통해 빌드 할 때 함께 연결됩니다.모듈 패턴 공개, 정의되지 않은 속성
반환 문 내에서 app.mapYear 값을 설정하려고 할 때 "정의되지 않은 getUrlParam 속성을 읽을 수 없습니다"오류가 발생합니다.
초기화 기능 내부에 app.mapYear 설정이 작동하는 것 같습니다. 왜 내가 내 반환 성명에 app.mapYear 설정할 수 없습니다 궁금하네요.
나는 여기에 간단한 것을 놓치고 있습니까? 더 좋은 방법이 있습니까? 내 코드에서 객체 속성을 산발적으로 설정하는 것을 막기를 바랍니다.
// app.js
//*****************
'use strict';
var app = app || {};
app = (function() {
const getMapYear =() => {
return app.utils.getUrlParam('year');
};
const mapYear = getMapYear();
const init =() => {
//init offcanvas menu
$(document).foundation();
// app.mapYear = mapYear();
};
return {
init,
mapYear
};
})();
$(function() {
app.init();
});
utils.js
//*****************
var app = app || {};
app.utils = (function() {
const getUrlParam =() => {
console.log(document.location.search);
return document.location.search;
}
return {
getUrlParam
};
})();
시간 내 주셔서 감사합니다.
편집 : 동일한 문제가있는 사람이라면 제공된 답변을 통해 해결할 수 있습니다.
컴파일하면 utils.js
이 먼저 이어져 app.js
이옵니다.
return {
init,
utils: app.utils,
mapYear: getMapYear()
};
은 어디'app.utils'를 정의? 왜 새로운 객체로'app'을 덮어 씁니까? –
죄송 합니다만,이 파일들이 빌드 과정에서 함께 연결되어 있다는 것을 잊어 버렸습니다. 그리고 나는 JS를 쓰는 데별로 싫증이났습니다. – forcequitIO
@ShatteredRib, 내 대답을 볼 수 있습니다. –