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

A

Andrew Poulos

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.Initialize()?

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
 
L

Lasse Reichstein Nielsen

....
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.Initialize()?

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.LMSInitialize = API.Initialize;
var API_1484_11 = API;

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

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

/L
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,479
Members
44,899
Latest member
RodneyMcAu

Latest Threads

Top