老师并没有定义变量var timer = null或aLi[i].timer = null

来源:4-3 任意属性值(一)

高手之路

2016-05-11 15:04

老师并没有定义变量var timer = null或aLi[i].timer = null  而直接obj.timer = setInterval

是隐身的定义变量吗

这样写有什么优点或缺点,

或者说这样写会出现怎样的bug

写回答 关注

2回答

  • 慕之光
    2016-05-16 11:59:30
    已采纳

    事实上对于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编程艺术》这本书。

    共 1 条回复 >

  • joffyzou
    2016-05-12 11:56:07

    这样写的意思是timer成了obj这个对象的一个属性,=号后面是为obj对象的timer属性赋值。

    高手之路

    我想了解的是,如果把一段代码存储到一个变量中 不写var 直接timer = 这样写可以吗,有什么区别

    2016-05-12 16:01:03

    共 1 条回复 >

JS动画效果

通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装

113925 学习 · 1443 问题

查看课程

相似问题