今天用js寫輪播效果的時候發現遇到一個問題。
window.onload = function() {
...
time = setInterval("turn();", 5000); //會提示 javaSctript Uncaught Referene error turn is notdefined
...
function turn() {
...
}
}
turn就是在事件內部定義的函數名。
其實這就是作用域的問題,當頁面加載完畢,turn()函數的執行環境會發生變化,不是在window.onload方法下,而是在全局執行環境中,即window。
而根據JS的作用域鏈,在函數外部是不能訪問到函數內部的變量和方法的,window.onload對于window來說只是局部的,所以會提示turn沒有定義。
新聞熱點
疑難解答