高分wanted: 一个作用域的问题
代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>js问题</title>
<style type="text/css">
<!--
#Layer1 {
width:87px;
height:56px;
z-index:1;
background-color: #CCCCCC;
}
-->
</style>
</head>
<script>
function Debug(num){
this.num = num;
this.out = function(){
alert(this.num);
}
}
var dbg = new Debug(555);
</script>
<body>
<!-- 如果直接写到div则可以正常显示 数字555
<div id="Layer1" onclick="dbg.out()">clickme</div>
-->
<div id="Layer1" onclick="dbg.out()">clickme</div>
<script>
document.getElementById('Layer1').onclick = dbg.out; //注册事件则有问题:显示undefined 为什么不显示 555???
alert(document.getElementById('Layer1').onclick);//ok 没问题
</script>
</body>
</html>
简单的小程序,但是如出了上面描述中的问题,我想知道为什么通过
document.getElementById('Layer1').onclick = dbg.out;得不到我要的结果, 是否是变量做用域的问题?
谢谢各位