By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
437,636 Members | 1,189 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 437,636 IT Pros & Developers. It's quick & easy.

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

P: n/a
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


Jul 16 '08 #1
Share this Question
Share on Google+
1 Reply


P: n/a
Andrew Poulos <ap*****@hotmail.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.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
--
Lasse Reichstein Nielsen
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'
Jul 16 '08 #2

This discussion thread is closed

Replies have been disabled for this discussion.