请问一下在js里面下面在串代码,定时器为什么,我没有申明一个变量就可以 obj.timer=赋值呢?

在什么时候不要申明一个变量就可以直接名字=.....在样写?什么时候必须加一个变量申明呢?初学js有些事件不知道整么叫希望别介意,求详细解答,谢谢!
function startMove(obj, iTarget)
{
clearInterval(obj.timer);
obj.timer=setInterval(function (){
var iSpeed=(iTarget-obj.alpha)/8;
iSpeed=iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);

if(obj.alpha==iTarget)
{
clearInterval(obj.timer);
}

第1个回答  2016-06-29
在JavaScript函数中啊,函数有形参和实参数,形参就是function Book( obj ){}小括号里面的,表示是你在调用这个函数传进去的值,你在外面调用的时候,传的是什么就是什么!
var 是声明一个变量,只要是声明一个变量都需要使用到var,= 等于是赋值的过程,将右边的表达式赋值给左边的变量,可见变量是一个可变的量嘛!追问

那为什么上面的定时器,它不需要声明一个空变量, 就直接obj.名字=赋值呢,而下面在个定时器为什么它就需要先声明一个var timer=null变量在赋值?请问一下在俩个的区别,为什么在么做呢?希望您指点一下谢谢!

追答unction startMove(obj, iTarget){
clearInterval(obj.timer);
obj.timer=setInterval(function(){
var iSpeed=(iTarget-obj.alpha)/8;
iSpeed=iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);
if(obj.alpha==iTarget){
clearInterval(obj.timer)
        };

这个是你的源代码,clearInterval(obj.timer),是一个清除定时器,obj.timer是一个自定义属性了,意思就是给obj添加了一个功能,obj这个参数是需要从外部传!

你下面那个是声明一个变量,肯定会用到var,但是用不用到null就看自己的想法和思路了,

本回答被提问者和网友采纳