object literal vs closure

Benchmark created on


Setup

var AnObject = {
            DEFAULT_TIMEZONE: 0,
        _current: null,
        
        get: function() {
                return this.DEFAULT_TIMEZONE || this._current;
        },
        
        set: function(timezoneOffset) {
                if(timezoneOffset && typeof timezoneOffset === 'number') {
                        this._current = timezoneOffset;
                        return true;
                }
        }
    }
    
    
    var AClosedObject = (function(){
            var DEFAULT_TIMEZONE = 0;
        var current = null;
        
        return {
                get: function() {
                        return DEFAULT_TIMEZONE || current;
                },
                
                set: function(timezoneOffset) {
                        if(timezoneOffset && typeof timezoneOffset === 'number') {
                                current = timezoneOffset;
                                return true;
                        }
                }
        }
    }());

Test runner

Ready to run.

Testing in
TestOps/sec
literal
AnObject.get()
ready
closure
AClosedObject.get()
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.