已定义的js对象,调试时提示未定义

是个初级的问题,js调试的时候提示变量未定义。代码如下:

clipboard.png

明明在windows.onload中定义了。但oBtn的在执行的时候无法进行。

是个比较初级的问题,谢谢大神的指点。我已经在百度和论坛找过了,但是没有找到类似的,不知道是不是我还不太熟悉。

囧,没有注意了。这是一个局部变量。。。已经解决

阅读 5.6k
4 个回答

因为oBtn在绑定click事件的时候还没有执行声明的语句;你应该将该绑定方法放在onload函数里。

既然你都说了是局部变量、为什么不把绑定事件的那段代码写到window.onload里面呢

JS有闭包特性

window.onload = function(){
    var str = "test"
}
console.log(str)

仔细看看这段代码为什么会取不到、你的问题就解开了

你定义的两个变量是在onload事件函数里,你在onload事件外为obtn绑定事件肯定是找不到的,你试试把对象里的var都删掉,脚本就能运行了(只是做测试,但不推荐这样定义变量而污染了全局变量)。

绑定代码要写到onload代码块中。
JavaScript在ES 5 中是函数作用域,如果想使用对应的变量,需要在同一个作用域下。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题