為什么下面函數(shù)用到的timer,在上面的函數(shù)用不用聲明?
timer 和alpha 這兩個沒弄到公共屬性時候,老師都給var聲明了,但是放到上面的函數(shù)中就沒聲明??
<script type="text/javascript">
? ? window.onload=function(){
? ? ? ? ?var oDiv=document.getElementsByTagName('div');
? ? ? ? ?for (var i = 0; i < oDiv.length; i++) {
? ? ? ? ?oDiv[i].timer=null;
? ? ? ? ?oDiv[i].alpha=30;
? ? ? ? ?oDiv[i].onmouseover=function(){
? ? ? ? ?change(this,100);
? ? ? ? };
? ? ? ? ?oDiv[i].onmouseout=function(){
? ? ? ? ?change(this,30);
? ? ? ? }
? ? }
}
/*var alpha=30;*/
? ? ?function change(obj,Target){
? ? ? ? clearInterval(obj.timer);
? ? ? ? obj.timer=setInterval(function(){
? ? ? ? ? var speed=0;
? ? ? ? ?if(obj.alpha>Target){
? ? ? ? ? ? speed=-10;
? ? ? ? ?}else{
? ? ? ? ? ? speed=10;
? ? ? ? ?}
? ? ? ? ?if(obj.alpha==Target){
? ? ? ? ? ? clearInterval(obj.timer)
? ? ? ? ?}else{
? ? ? ? ? ? obj.alpha+=speed;
? ? ? ? ? ? obj.style.filter=='alpha(opacity:'+obj.alpha+')';
? ? ? ? ? ? obj.style.opacity=obj.alpha/100;
? ? ? ? ?}
? ? ? ? }, 30)
? ? }
2016-09-05
下面函數(shù)的timer是obj的,而obj是該函數(shù)的形參,也就是說下面函數(shù)的timer是由參數(shù)obj帶著的,也就不用聲明了,只要obj有timer就可以了