JavaScript lacks of the classical OO keywords like public
, protected
and private
, so a developer is forced to use scope in order to implement something that mimics the basic behavior of such keywords. For example, a good way to implement private
members in a JavaScript class (although in JavaScript there are only functions, not classes in the strict sense of the term) is the following:
function MyClass { var url = location.href; var title = document.title; var ua = navigator.userAgent; this.setPermanentLink = function() { $('<p class="permalink"></p>').html(' <a href="' + url + '">Permanent link</a>'). appendTo('#site-info'); }; //... }
Since the first three variables lie in the function scope, they're not accessible from outside the function/class. Perhaps I'm reinventing the wheel, but this is one of the most frequently asked questions of ever (especially among traditional OO programmers).