js在构造函数构造的对象中使用setTimeout函数如何固定调用对象

Zero_Error 2016-12-07 10:03:45
html:
<button id="age">岁数增长</button>


JS:
var age=document.getElementById("age");
function Person(name,age){
this.name=name;
this.age=age;
this.live=function(){
setTimeout(function(){
if(this.age<20){
age.textContent=this.age;
this.age++

}
setTimeout(arguments.callee,500);

},500)

}
}


var p1=new Person("zhangsan",10);
age.onclick=function(){p1.live()};


在第一次执行的时候会显示this是p1,但是却不能执行的起来,也就是说可以加载监听,但是点击按钮却没有反应,求解

...全文
203 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Zero_Error 2016-12-07
  • 打赏
  • 举报
回复
谢谢,可以了
Zero_Error 2016-12-07
  • 打赏
  • 举报
回复
是要保存this是吗
天际的海浪 2016-12-07
  • 打赏
  • 举报
回复

function Person(name,age){
this.name=name;
this.age=age;
this.live=function(){
  var t = this;
  setTimeout(function(){
     if(t.age<20){
       age.textContent=t.age;
        t.age++ 
     }
setTimeout(arguments.callee,500);

},500)

}
}

87,909

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧