Pseudo getter vs real getter

JavaScript performance comparison

Revision 2 of this test case created by Johannes Stein

Preparation code

 
<script>
Benchmark.prototype.setup = function() {
    var myObj1 = {
      myProp: (function() {
        return "test";
      })()
    };
   
    var myObj2 = {
      get myProp() { return "test"; }
    };
   
    var myObj3 = {
      myProp: (function() {
        return "test";
      }).apply(this)
    };
   
    var myObj4 = {};
    Object.defineProperty(myObj4, "myProp", { get: function() { return 'test'; },
                                   enumerable: true,
                                   configurable: true});
   
};
</script>

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
Abusing IIFE as a getter
myObj1.myProp;
pending…
Getter
myObj2.myProp;
pending…
Immediately executed function
myObj3.myProp;
pending…
Object.defineProperty
myObj4.myProp;
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. Here’s a list of current revisions for this page:

0 comments

Add a comment