这个javascript例子如何不用函数名回调本身,像使用arguments.callee一样?

//这个函数时焦点轮播图动画的一部分,改变动画列表left值的。我在setTimeout(arguments.callee, interval);这里能用
callee属性,可是最后一行的go()如何改?callee是属性,不能写arguments.callee()或return arguments.callee?


function animate(offset){
	var time = 400;							//time:每切一图的时间
	var interval = 10;						//interval:最小定时间隔	
	var speed = offset/(time/interval);		                //speed:每定时周期偏移量
	var newLeft = parseInt(picList.style.left) + offset;	        //移动后应到达的位置
	function go(){
		animated = true;					//动画开始
		//判断条件(列表右移且未到达预定位置 || 列表左移且未到达预定位置)
		if ((speed > 0 && parseInt(picList.style.left) < newLeft) || speed < 0 && parseInt(picList.style.left) > newLeft) {
			picList.style.left = parseInt(picList.style.left) + speed + "px";
			setTimeout(arguments.callee, interval);		//递归直到到达预定位置
		} else{   //到达预定位置后判断时候需要跳转
			picList.style.left = newLeft + "px";
			if (newLeft > -800) {
				picList.style.left = -3200 + "px";
			} else if (newLeft < -3200) {
				picList.style.left = -800 + "px";
			}
			animated = false;					//动画结束(不能写在后面那个括号外)
		}
		
	}
	go();  //调用函数
}


newsudhc3634140
浏览 1365回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP