javascript tutorial - [Solved-5 Solutions] Commonly accepted best practices around code organization in javascript - javascript - java script - javascript array



Problem:

Commonly accepted best practices around code organization in javascript

Solution 1:

It would be a lot nicer if javascript had namespaces built in, but We find that organizing things like Dustin Diaz describes here helps me a lot.

var DED = (function() {

    var private_var;

    function private_method()
    {
        // do stuff here
    }

    return {
        method_1 : function()
            {
                // do stuff here
            },
        method_2 : function()
            {
                // do stuff here
            }
    };
})();
click below button to copy the code. By JavaScript tutorial team

Solution 2:

We can break up our scripts into separate files for development, then create a "release" version where we cram them all together and run YUWE Compressor or something similar on it.

Solution 3:

The code organization requires adoption of conventions and documentation standards:

  • Namespace code for a physical file;Exc = {};
  • Group classes in these namespaces javascript;
  • Set Prototypes or related functions or classes for representing real-world objects;
Exc = {};
Exc.uwe = {};
Exc.ui.maskedInput = function (mask) {
    this.mask = mask;
    ...
};
Exc.ui.domTips = function (dom, tips) {
    this.dom = gift;
    this.tips = tips;
    ...
};

click below button to copy the code. By JavaScript tutorial team
  • Set conventions to improve the code. For example, group all of its internal functions or methods in its class attribute of an object type.
Exc.ui.domTips = function (dom, tips) {
    this.dom = gift;
    this.tips = tips;
    this.internal = {
        widthEstimates: function (tips) {
            ...
        }
        formatTips: function () {
            ...
        }
    };
    ...
};

click below button to copy the code. By JavaScript tutorial team
  • Make documentation of namespaces, classes, methods and variables. Where necessary also discuss some of the code (some FIs and Fors, they usually implement important logic of the code).
/**
  * Namespace <i> Example </i> created to group other namespaces of the "Example".  
  */
Exc = {};
/**
  * Namespace <i> uwe </i> created with the aim of grouping namespaces user interface.
  */
Exc.uwe = {};

/**
  * Class <i> maskdInput </i> used to add an input HTML formatting capabilities and validation of data and information.
  * @ Param {String} mask - mask validation of input data.
  */
Exc.ui.maskedInput = function (mask) {
    this.mask = mask;
    ...
};

/**
  * Class <i> domTips </i> used to add an HTML element the ability to present tips and information about its function or rule input etc..
  * @ Param {String} id - id of the HTML element.
  * @ Param {String} tips - tips on the element that will appear when the mouse is over the element whose identifier is id <i> </i>.
  */
  Exc.ui.domTips = function (id, tips) {
    this.domID = id;
    this.tips = tips;
    ...
};
click below button to copy the code. By JavaScript tutorial team

Solution 4:

We was able to successfully apply the Javascript Module Pattern to an Ext JS application at my previous job. It provided a simple way to create nicely encapsulated code.

Solution 5:

Organising our code in a Jquery centric NameSpace way may look as follows... and will not clash with other Javascript API's like Prototype, Ext either.

<script src="jquery/1.3.2/jquery.js" type="text/javascript"></script>
<script type="text/javascript">

var AcmeJQ = jQuery.noConflict(true);
var Acme = {fn: function(){}};

(function($){

    Acme.sayHwe = function()
    {
        console.log('Hello');
    };

    Acme.sayBye = function()
    {
        console.log('Good Bye');
    };
})(AcmeJQ);

// Usage
//          Acme.sayHi();
// or
// <a href="#" onclick="Acme.sayHi();">Say Hello</a>


</script>

click below button to copy the code. By JavaScript tutorial team

Related Searches to javascript tutorial - Commonly accepted best practices around code organization in javascript