高手之路
2016-05-11 15:04
老师并没有定义变量var timer = null或aLi[i].timer = null 而直接obj.timer = setInterval
是隐身的定义变量吗
这样写有什么优点或缺点,
或者说这样写会出现怎样的bug
事实上对于javascript这样的弱类型语言,使用var和不使用var都可以定义一个变量,在函数内使用var定义的变量是一个局部变量,不使用var定义的变量是一个全局变量,而obj.timer = setInterval这种方式算不上定义,这里obj已经是一个对象了,obj.timer代表为这个对象创建一个属性,然后才能使用这个属性,我们可以为它创建很多属性,根据需要来。ps:大多时候我们想自定义一个对象,可以这样写:var myobj1 = Object();然后为你的对象添加属性,如myobj.number=2016等等,还可以用另外一种方法定义对象,如:var myobj2 = {name:"Joh",number:"146"};这对话括号里的name和number就是对象myobj2的属性"Joh","146"就是值,而且值可以是任何数据类型,用得较多的就是函数了。如果你想了解更多,就去看看《DOM编程艺术》这本书。
这样写的意思是timer成了obj这个对象的一个属性,=号后面是为obj对象的timer属性赋值。
JS动画效果
113925 学习 · 1443 问题
相似问题