javascript - Should one write window.X when referring to a built-in global property X in the (desktop) browser? -


Therefore, (desktop) browsers have dozens of built-in global properties, for example:

  • document
  • undefined
  • parseInt
  • JSON
  • Location
  • Warning
  • setTimout
  • etc.

    While referring to those qualities, they should clearly note them as global property by prefixing them with their properties window. ? Therefore, for example:

      var wrap = window.document.getElementById ('wrap');   

    and

      window.setTimeout (loop, 100);   

    and

      var x = window.parseInt (input.value, 10);   

    I think there are three answers to this question:

    1. Yes, you always write window.X

    2. No, you do not have to write window.X . Just X is OK.

    3. For some properties it depends on the property, use window.X , for some other properties, X (If this is your answer, expand it.)

      So, what is it?

      I leave a few exceptions and go to 3: No window .

      In the browser, the window refers to the global scope window. As unnecessary in window.prompt () , you can emphasize it to use that prompt () a window is a method of object.

      I will never use anything like window math or window.NaN because these properties are global objects that have windows < There is nothing with the code / object which is a global object in the browser, also see.

      If you have another variable in the existing (local) area of ​​the name prompt , you will need the window. Initially as prefix:

        (function () {var prompt = "Give me your name!" Var name = window.prompt (prompt, "your name") ;}));   

      For the setting of global variables, you should add the window. To satisfy the equipment as a prefix (Otherwise, you might have forgotten var and accidentally leak a variable in the global scope):

        (function () {// "wrong" somevar = 1; // You probably want to set a local variable, so should use: var somevar = 1; // remove confusion , You really want to set global variables: window.somevar = 1;}) ();   

      Generally, except the window By considering the next example, readability improvements:

        window.setInterval (function () {var NumA = window.parseInt (window.document.getElementById ("numA"). Value, 10); var numb = window.parseInt (window.document.getElementById ("numB"). Value, 10); window.document.getElementById ("average"). Value = window.Math.floor ((numA + NumB) / 2);}, 1000);    

Comments