问题:为什么不设置事件监听器?使用ES6箭头功能设置事件监听器
//ADDING THE EVENT LISTENER
document.addEventListener('DOMContentLoaded', init);
//DELCARING INIT, PASSING BLANK PARAM, STATEMENT
var init =() => console.log('Is Firing');
问题:为什么不设置事件监听器?使用ES6箭头功能设置事件监听器
//ADDING THE EVENT LISTENER
document.addEventListener('DOMContentLoaded', init);
//DELCARING INIT, PASSING BLANK PARAM, STATEMENT
var init =() => console.log('Is Firing');
您的init
应在使用前声明。
//DELCARING INIT, PASSING BLANK PARAM, STATEMENT
var init =() => alert('Is Firing');
//ADDING THE EVENT LISTENER
document.addEventListener('DOMContentLoaded', init);
初始化函数式,这意味着提升不会发生吧,这样你应该听者结合前拉函数表达式了。我建议你研究悬挂的功能。 https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/function#Function_declaration_hoisting
准确地说,变量'init' **是**,这就是为什么这不会产生'ReferenceError'。但是,该变量在赋值语句到达之前不会获取值,这意味着在addEventListener调用中引用其值时仍未定义。 –
本应该很容易在addEventListener行放置一个断点,并在该点检查变量init。 http://ericlippert.com/2014/03/05/how-to-debug-small-programs/ –