#javascript #scope
#javascript #область действия
Вопрос:
Почему код внутри app.init()
функции не выполняется?
(function () {
console.log('loaded here');
function ready(callbackFunction){
if (document.readyState != 'loading')
callbackFunction(event)
else
document.addEventListener("DOMContentLoaded", callbackFunction)
}
var app = function (options) {
var app = this,
version = 1.00;
app.init = function () {
console.log('not loaded here');
console.log(window);
}
app.init();
};
ready(event => {
console.log('dom is loaded');
window.myApp = function (opt) { return new app(opt); };
});
})();
Ответ №1:
вы никогда не вызываете window.MyApp как функцию, вместо этого прямо сейчас вы просто объявляете ее. Измените на следующее,
(function () {
console.log('loaded here');
function ready(callbackFunction){
if (document.readyState != 'loading')
callbackFunction(event)
else
document.addEventListener("DOMContentLoaded", callbackFunction)
}
var app = function (options) {
var app = this,
version = 1.00;
app.init = function () {
console.log('not loaded here');
}
app.init();
};
ready(event => {
console.log('dom is loaded');
var opt = {};
window.myApp = new app(opt);
});
})();