今天用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没有定义。
新闻热点
疑难解答