Minimising duplication using ((){})();

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Andrew Poulos

    Minimising duplication using ((){})();

    I'm building some code that using this type of structure to interface to
    SCORM compliant LMS:

    var API = (function() {
    // Private variables
    var started = false;

    // Private methods

    // Public methods
    return {
    // Initialise
    Initialize : function() {
    started = true;

    }
    }
    })();


    Unfortunately there are two common standards that need to be satisfied
    and I was hoping to do it with minimal duplication.

    My problems are these:

    1. Some LMS will be referring to 'API' and some will be expecting the
    name 'API_1484_11'. If I add this line

    var API_1484_11 = API;

    does that mean, say, that I could call API.Initialize( ) and it would be
    the same as calling API_1484_11.Ini tialize()?

    2. The public methods are identical in content but need to have slightly
    different names for 'API' and 'API_1484_11'. For example, 'Initialize'
    and 'LMSInitialize' . How can I achieve this without duplicating the
    entire method?

    Andrew Poulos




  • Lasse Reichstein Nielsen

    #2
    Re: Minimising duplication using ((){})();

    Andrew Poulos <ap_prog@hotmai l.comwrites:

    ....
    1. Some LMS will be referring to 'API' and some will be expecting the
    name 'API_1484_11'. If I add this line
    >
    var API_1484_11 = API;
    >
    does that mean, say, that I could call API.Initialize( ) and it would
    be the same as calling API_1484_11.Ini tialize()?
    Yes. They not only behave the same, they are the same: The same method
    called on the same object.
    2. The public methods are identical in content but need to have
    slightly different names for 'API' and 'API_1484_11'. For example,
    'Initialize' and 'LMSInitialize' . How can I achieve this without
    duplicating the entire method?
    API.LMSInitiali ze = API.Initialize;
    var API_1484_11 = API;

    API.Initialize( );
    API_1484_11.LMS Initialize(); // exactly the same

    .... as long as you don't have the same method name meaning different
    things in the different APIs.

    /L
    --
    Lasse Reichstein Nielsen
    DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleD OM.html>
    'Faith without judgement merely degrades the spirit divine.'

    Comment

    Working...