哪种方式更好,setInterval()或window.setInterval()?

Jac*_*cob 17 javascript

好的,这个问题还有几个问题.

首先,我问这个是setTimeout()和setInterval()

我已经看到了几种不同的方式来调用它们,我想知道哪种方式最适合这种情况.

我正在制作一个js/canvas游戏,我只是查看我的绘制间隔(它循环绘制方法)

无论如何,这是我见过的不同方式......

A部分:

  1. 使用窗口.

    drawInterval = window.setInterval(draw, 60);
    
    Run Code Online (Sandbox Code Playgroud)
  2. 不使用窗口.

    drawInterval = setInterval(draw, 60);
    
    Run Code Online (Sandbox Code Playgroud)

B部分:

  1. 不使用函数名称周围的引号和括号

    drawInterval = setInterval(draw, 60);
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在函数名称周围使用引号和括号

    drawInterval = setInterval("draw()", 60);
    
    Run Code Online (Sandbox Code Playgroud)

所以对于A部分:我应该使用窗口.或不?那么window.clearInterval()和clearInterval本身呢?

对于B部分:我应该使用引号和括号吗?之前我被告知在这种情况下使用引号和括号是个坏主意.

g.d*_*d.c 24

  1. 除非你已经宣布了自己的本地范围setInterval功能,否则setInterval和之间没有区别window.setInterval.

  2. 第二种形式使用隐含的eval().应尽可能避免这种情况,因为它提供了代码注入的潜力.

  • @Jake - 你的假设是正确的.相同的"除非你声明了本地作用域版本"声明适用于`window`的所有成员.setInterval,setTimeout,clearInterval,clearTimeout等. (2认同)

koj*_*iro 5

  1. window全球对象.您是否明确地使用它是一种风格问题,但作为Python开发人员,我认为显式更好.

  2. 如果使用引号,则setInterval()实质上是"evals"语句.那很糟糕.不要使用引号.