Nested Named Functions compared to Module Pattern without last module pattern
JavaScript performance comparison
Preparation code
<script>
(function() {
function mySandwich(param1, param2, callback) {
console.log('Started eating my sandwich.\n\nIt has: ' + param1 + ', ' + param2);
var sth = "test";
callback(sth);
}
// Nested function
person = mySandwich('ham', 'cheese', function(sth) {
console.log('Finished eating my sandwich.'+sth);
return function(){};
});
// Non nested function inner function
function mycallback(sth) {
console.log('Finished eating my sandwich.' + sth);
return function(){};
}
// Non nested function
person2 = mySandwich('ham', 'cheese', mycallback);
}());
// YUI style (http://www.yuiblog.com/blog/2007/06/12/module-pattern/)
var myNamespace = myNamespace || {};
myNamespace.module1 = (function() {
//"private" method:
var getNextAge3 = function(age) {
return age + 1;
}
return {
person3: function(age) {
return getNextAge3(age);
}
};
}());
// Adding New Functionality to the person4
// http://enterprisejquery.com/2010/10/how-good-c-habits-can-encourage-bad-javascript-habits-part-1/
(function( person4, $, undefined ) {
person4.Age = 0;
//Public Method
person4.getNextAge = function() {
return person4.Age + 1;
};
}( window.person4 = window.person4 || {}, {} ));
</script>
Test runner
Warning! For accurate results, please disable Firebug before running the tests. (Why?)
Java applet disabled.
Test | Ops/sec | |
---|---|---|
Optimized (No Nesting)
|
|
pending… |
Nested Function
|
|
pending… |
Module Pattern (YUI style (http://www.yuiblog.com/blog/2007/06/12/module-pattern/))
|
|
pending… |
Compare results of other browsers
Revisions
You can edit these tests or add even more tests to this page by appending /edit
to the URL.
- Revision 3: published gdsf
- Revision 4: published
- Revision 5: published gdsf
- Revision 6: published
- Revision 7: published
- Revision 9: published
- Revision 10: published
- Revision 13: published
- Revision 14: published
- Revision 15: published
- Revision 16: published
- Revision 17: published
- Revision 18: published
- Revision 19: published
- Revision 20: published
- Revision 21: published
- Revision 22: published
- Revision 23: published
- Revision 24: published max jooher
- Revision 30: published Digitale Welten
- Revision 31: published Digitale Welten
- Revision 33: published
- Revision 38: published
- Revision 44: published ggbg
- Revision 45: published
- Revision 46: published ggbg
- Revision 47: published ggbg
- Revision 49: published
- Revision 50: published ggbg
- Revision 51: published ggbg
- Revision 53: published
0 Comments