In PHP there's a magic method called __autoload()
that is used to load automatically one or more classes. JavaScript has no notion of such a method, simply because there's no need to. Anyway, sometimes it's useful to load automatically all the methods of a given class. For example, given the following class:
var Class = { method1: function() { alert('Foo'); }, method2: function() { alert('Bar'); }, method3: function() { alert('Baz'); } };
If you want to call all the above methods, you have to explicitly call them one by one. We can make this procedure easier with the following function:
function autoload(o) { for(var i in o) { if(typeof o[i] === 'function') { o[i](); } } } autoload(Class); // alerts 'Foo', 'Bar', 'Baz'
We use the for ... in
loop to iterate over the members of a class passed as an argument to the function. If the member is a function, then we call it. The major drawback with this approach is that this kind of loop is usually slower and more resource-consuming than other JavaScript looping constructs.