javascript 对象属性的问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 15:29:23
<script language="javascript">
function clock()
{
var t=new Date();
document.getElementById("clock").value=t;
this.a=window.setTimeout("clock()",50);
}
</script>
</head>
<body>
<input type="text" id="clock" size="35"/>
<script language="javascript">
var s=new clock();
//window.clearTimeout(s.a);xxxxxxxxxxxxxxxxxxxxx
</script>
<input type="button" value="停止" onclick="window.clearTimeout(s.a);"/>

请问为什么点击后不能停止的?
而在xxxxxxxxx那一行添加后又可以的?
1l 我知道这种方法
我只是想问一下 为什么这样会实现不了呢?
比如说将来我要通过按钮来改变赋给对象的方法时 就不行了

<script language="javascript">
function clock(){
document.getElementById("clock").value=(new Date()).toString();
}
</script>
</head>
<body>
<input type="text" id="clock" size="35"/>
<script language="javascript">
var s=setInterval(clock,50);
</script>
<input type="button" value="停止" onclick="window.clearTimeout(s);"/>

稍微看了一下你的代码,有一点你还没有弄明白
var s=new clock();
执行这句的时候,a确实是一个timeout返回的
但是
this.a=window.setTimeout("clock()",50);
再一次执行clock的时候,this就不是s了,而是window。
所以s.a在50毫秒内已经执行完了,而再按按钮时,当然停下的是第一次timeout,停不下后面的timeout

<script language="javascript">
var sign=false;
function clock()
{
var t=new Date();
document.getElementById("clock").value=t;
this.a=window.setTimeout("clock()&q