app
не определяется как функция. Вы присвоили IIFE для app
, чтобы IIFE ничего не возвращал явно, поэтому он возвращает undefined
неявно. Затем, после того как документ готов, вы пытаетесь выполнить app
, предполагая, что это функция. Это ошибка.
Должны работать следующие:
var app = function(){
var selector = {
app: ".js-app",
app__home: "js-app__home"
}
foo();
var foo = function () {
console.log(selector.app__home);
if ($(selector.app).hasClass(selector.app__home)) {
console.log("is home page");
}
}
};
$(document).on("ready", function() {
app();
});
Пока вы это делаете, определите селектор и foo, используя var или let или const, иначе вы сделаете их глобальными.