Loading ...
Sorry, an error occurred while loading the content.

option.browser

Expand Messages
  • douglascrockford
    The browser predefinition list has gotten a lot shorter: /*global clearInterval: false, clearTimeout: false, document: false, event: false, frames: false,
    Message 1 of 8 , Feb 11, 2011
    • 0 Attachment
      The browser predefinition list has gotten a lot shorter:

      /*global clearInterval: false, clearTimeout: false,
      document: false, event: false, frames: false,
      history: false, Image: false, location: false,
      name: false, navigator: false, Option: false,
      parent: false, screen: false, setInterval: false,
      setTimeout: false, XMLHttpRequest: false */

      The window.* methods and related properties have been removed.
      It is generally a bad idea to be poking at the window object,
      but if you must, do it explicitly. Write

      window.addEventListener(...)

      and not

      addEventListener(...)

      because the implicit form fails in strict mode. When a function is called as a function, this will be bound to undefined. In sloppy mode, this was bound to the global object, which was a bad idea, which enabled the implicit form, which was also a bad idea.
    • Rob Richardson
      I see setTimeout (and cousins) are still in the browser defined list, but would you recomend the same rule of thumb be true for these? E.g. would you
      Message 2 of 8 , Feb 11, 2011
      • 0 Attachment
        I see setTimeout (and cousins) are still in the browser defined list, but
        would you recomend the same rule of thumb be true for these? E.g. would you
        recommend "window.setTimeout( func...." rather than "setTimeout( func...."?

        Rob


        -----Original Message-----
        From: jslint_com@yahoogroups.com [mailto:jslint_com@yahoogroups.com] On
        Behalf Of douglascrockford
        Sent: Friday, February 11, 2011 8:17 AM
        To: jslint_com@yahoogroups.com
        Subject: [jslint] option.browser

        The browser predefinition list has gotten a lot shorter:

        /*global clearInterval: false, clearTimeout: false,
        document: false, event: false, frames: false,
        history: false, Image: false, location: false,
        name: false, navigator: false, Option: false,
        parent: false, screen: false, setInterval: false,
        setTimeout: false, XMLHttpRequest: false */

        The window.* methods and related properties have been removed.
        It is generally a bad idea to be poking at the window object,
        but if you must, do it explicitly. Write

        window.addEventListener(...)

        and not

        addEventListener(...)

        because the implicit form fails in strict mode. When a function is called as
        a function, this will be bound to undefined. In sloppy mode, this was bound
        to the global object, which was a bad idea, which enabled the implicit form,
        which was also a bad idea.
      • Douglas Crockford
        ... They are global functions, not methods of the window object, so they work correctly without the window. prefix.
        Message 3 of 8 , Feb 11, 2011
        • 0 Attachment
          --- In jslint_com@yahoogroups.com, "Rob Richardson" <erobrich@...> wrote:
          >
          > I see setTimeout (and cousins) are still in the browser defined list, but
          > would you recomend the same rule of thumb be true for these? E.g. would you
          > recommend "window.setTimeout( func...." rather than "setTimeout( func...."?


          They are global functions, not methods of the window object, so they work correctly without the window. prefix.
        Your message has been successfully submitted and would be delivered to recipients shortly.