title: Is the underscore prefix for property and method names merely a convention?
body: <p>Is the underscore prefix in JavaScript only a convention, like for example in Python private class methods are?</p>
  
  <p>From the 2.7 Python documentation:</p>
  
  <blockquote>
    <p>“Private” instance variables that
    cannot be accessed except from inside
    an object don’t exist in Python.
    However, there is a convention that is
    followed by most Python code: a name
    prefixed with an underscore (e.g.
    _spam) should be treated as a non-public part of the API (whether it
    is a function, a method or a data
    member).</p>
  </blockquote>
  
  <p>Does this also apply to JavaScript?</p>
  
  <p>Take for example this JavaScript code:</p>
  
  <pre><code>function AltTabPopup() {
      this._init();
  }
  
  AltTabPopup.prototype = {
      _init : function() {
          ...
      }
  }
  </code></pre>
  
  <p>Also, underscore prefixed variables are used.</p>
  
  <pre><code>    ...
      this._currentApp = 0;
      this._currentWindow = -1;
      this._thumbnailTimeoutId = 0;
      this._motionTimeoutId = 0;
      ...
  </code></pre>
  
  <p>Only conventions? Or is there more behind the underscore prefix?</p>
  
  <hr>
  
  <p>I admit my question is quite similar to <a href="https://stackoverflow.com/questions/783858/underscores-in-function-names">this question</a>, but it didn't make one smarter about the significance of the underscore prefix in JavaScript.</p>