JS Best Practices

JS References

Javascript Function: Private Variables

Learn to create and use private variables and methods.

Javascript Functions: Private Variables

In JavaScript, you cannot create private members, since all object properties are public.But
you can create private variables

Variables defined within a function are private because
it cannot be accessed from outside the function,
but this issue can be overcome by creating closures
within function, which can access these
variables using a scope chain.

A privileged method is defined a public
method which can access private variables/functions.

In the demo below, the methods fetchName() and
assignName() are privileged and hence can access the private variable name

Syntax: Javascript Function Private Variables and Privileged Methods.

Give it a TRY! » Note: Since both the methods are defined within the constructor, hence they can be accessed via scope chain

Javascript Functions : Static Private Variables

Another way to create privileged methods
is to create a private scope and define
within it private variables and functions.

In this technique, a private scope is used to enclose the constructorand its methods,
public methods are defined using the prototype pattern
and constructors are defined using function expression to create global functions.

In the demo below, the constructor Company has access to private variable name and methods
fetchName() and assignName(), thus the variable name can be used by all instances.

Example: JavaScript Functions : Static Private Variables

Example: JavaScript String Object : Properties

Give it a TRY! » Note: Calling assignName() on one instance has an effect on all other instance.

Javascript Function: Module Pattern

The Module Pattern are created using singletons.
Singletons are object which will have only
one instance ever.They are generally created using object literal notation.

The module pattern is used to extend the basic singletons
by add to it some private variables and privileged methods.Module
patterns use an anonymous function which returns an object.

Example: JavaScript Function : Module Pattern

Give it a TRY! » Note: The methods getComponentCount() and
registerComponent() are privileged and have access to
the array components