Property Getter / Setter Techniques (v85)

Revision 85 of this benchmark created by Joshua Wise on


Description

Testing various techniques for creating getters / setters in JavaScript.

Preparation HTML

<script>
  var obj = {
   prop: 0
  }
  
  var obj1 = {
   _prop: 0,
   getProp: function() {
    return this._prop;
   },
   setProp: function(value) {
    this._prop = value;
   }
  };
  
  var obj2 = {
   _prop: 0,
   get prop() {
    return this._prop;
   },
   set prop(value) {
    this._prop = value;
   },
  };
  
  
  var obj3 = {
   _prop: 0
  }
  
  
  Object.defineProperty(obj3, "prop", {
   get: function() {
    return this._prop;
  
   },
   set: function(val) {
    this._prop = val;
   }
  });
  
  var obj4 = {
   _prop: 0
  }
  
  
  obj4.__defineGetter__("prop", function() {
   return this._prop;
  });
  
  obj4.__defineSetter__("prop", function(val) {
   this._prop = val;
  });
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
Method Get
obj1.getProp();
ready
get
obj2.prop;
ready
Object.defineProperty Get
obj3.prop;
ready
__defineGetter__ Get
obj4.prop;
ready
Property Get
obj.prop;
ready
Method Set
obj1.setProp(1);
ready
set
obj2.prop = 1;
ready
Object.defineProperty Set
obj3.prop = 1;
ready
__defineSetter__ Set
obj4.prop = 1;
ready
Property Get
obj.prop = 1;
ready

Revisions

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