首页 > 设计 > WEB开发 > 正文

window.onload内部定义函数问题

2019-11-02 18:23:38
字体:
来源:转载
供稿:网友


今天用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没有定义。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表