問題:爲什麼不設置事件監聽器?使用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/ –