参考:<script> var A = 26; var showlist = new Object(); showlist.A = A; showlist.B = 0; showlist.toString = function(){ (this.A==A)?++this.B:this.B=1;this.A=A; return this.B; } document.write(showlist+"<br />"); document.write(showlist+"<br />"); document.write(showlist+"<br />"); A = 20; document.write("改变A=20<br />"); document.write(showlist+"<br />"); document.write(showlist+"<br />"); document.write(showlist+"<br />"); </script>
<SCRIPT LANGUAGE=javascript> <!-- var A=5; var calltimes=0; var ValueChanged=0; function showlist(){ for (var i=1;i<(A+1);i++){ if (i==calltimes){ document.getElementById("OUTPUT").innerHTML = i; }}} function changeA(n){ if ((n*1-A)!=0){ A=n*1; calltimes=0 callA(); }} function callA(){ calltimes+=1; document.getElementById("calltimes").innerHTML = calltimes showlist(); } //--> </SCRIPT> 改变A<input type=text name=test onblur='javascript: changeA(this.value)'><br> <input type=button name=test value='调用A' onclick='javascript: callA()'><br> 调用<span id='calltimes'>0</span>次 <BR><BR><HR> <SPAN ID='OUTPUT'></SPAN> -------------------------------- 一个简单测试,没优化;不知道楼主是不是要实现这个效果
或者这样:<script> var A = 26; function test(){ var AA = A; var B = 0; return function show(){ (AA==A)?++B:B=1;AA=A; document.write(B); } } var showlist = new test(); showlist(); showlist(); showlist(); showlist(); A=20; showlist(); showlist(); showlist(); showlist(); </script>
var A = 26;
var showlist = new Object();
showlist.A = A;
showlist.B = 0;
showlist.toString = function(){
(this.A==A)?++this.B:this.B=1;this.A=A;
return this.B;
}
document.write(showlist+"<br />");
document.write(showlist+"<br />");
document.write(showlist+"<br />");
A = 20;
document.write("改变A=20<br />");
document.write(showlist+"<br />");
document.write(showlist+"<br />");
document.write(showlist+"<br />");
</script>
<SCRIPT LANGUAGE=javascript>
<!--
var A=5; var calltimes=0; var ValueChanged=0;
function showlist(){
for (var i=1;i<(A+1);i++){
if (i==calltimes){
document.getElementById("OUTPUT").innerHTML = i;
}}}
function changeA(n){
if ((n*1-A)!=0){
A=n*1;
calltimes=0
callA();
}}
function callA(){
calltimes+=1;
document.getElementById("calltimes").innerHTML = calltimes
showlist();
}
//-->
</SCRIPT>
改变A<input type=text name=test onblur='javascript: changeA(this.value)'><br>
<input type=button name=test value='调用A' onclick='javascript: callA()'><br>
调用<span id='calltimes'>0</span>次
<BR><BR><HR>
<SPAN ID='OUTPUT'></SPAN>
--------------------------------
一个简单测试,没优化;不知道楼主是不是要实现这个效果
var A = 26;
function test(){
var AA = A;
var B = 0;
return function show(){
(AA==A)?++B:B=1;AA=A;
document.write(B);
}
}
var showlist = new test();
showlist();
showlist();
showlist();
showlist();
A=20;
showlist();
showlist();
showlist();
showlist();
</script>