原理:如下代码所示。在类中必须指定myclass.last中的myclass请问应该怎么做让这个JsClass能够不依赖于它实例化的对象。<!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=utf-8" />
<title>JsClass</title>
</head>
<script language="javascript">
function JsClass(){
this.num=0;
this.timeID=null
this.run=function(){this.timeID=setInterval(function(){myclass.last()},300)}
this.last=function(){if(this.num>10){clearInterval(this.timeID);alert('myclass循环结束')} else {document.getElementById("num").innerHTML=this.num;this.num++}}
}
var myclass=new JsClass();
</script>
<body>
<button onclick="myclass.run()">开始</button>
<div id="num"></div>
</body></html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JsClass</title>
</head>
<script language="javascript">
function JsClass(){
this.num=0;
this.timeID=null
this.run=function(){this.timeID=setInterval(function(){myclass.last()},300)}
this.last=function(){if(this.num>10){clearInterval(this.timeID);alert('myclass循环结束')} else {document.getElementById("num").innerHTML=this.num;this.num++}}
}
var myclass=new JsClass();
</script>
<body>
<button onclick="myclass.run()">开始</button>
<div id="num"></div>
</body></html>
那么你的定义就要变了.
var myclass1=new JsClass(); myclass1.run();
var myclass2=new JsClass(); myclass2.run();
var myclass3=new JsClass(); myclass3.run();类那里该怎么定义?
究竟是要this.last()还是myclass1.run()?
<div id='ss'></div>
<div id="num"></div>
<script language="javascript">
function $(Id){return document.getElementById(Id)};
function addListener(element,e,fn){ element.addEventListener?element.addEventListener(e,fn,false):element.attachEvent("on" + e,fn)};
function create(elm,parent,fn){var element = document.createElement(elm);if(fn)fn(element);parent.appendChild(element);};
function JsClass(parent){
var self=this;
this.num=0;
this.timeID=null;
create('button',parent,function(obj){
obj.value = "确定";
addListener(obj,'click',function(){self.run()})
})
this.run=function(){self.timeID=setInterval(function(){self.last()},300)}
this.last=function(){if(this.num>10){clearInterval(this.timeID);alert('myclass循环结束')} else {document.getElementById("num").innerHTML=this.num;this.num++}}
}
var myclass=new JsClass($('ss'));
</script>
</body