literal obj vs function obj

Benchmark created by Nucking on


Preparation HTML

<script>
  var A = {
      aa : function(){
          var i, j=[];
          var arr = ['Literal', 'Function'];
          for (i = 0; i < arr.length; i++){
              j[i] = arr[i];
          }
        return j[0];
      }
  };
  var A1 = A;
  var A2 = A1;
  A1.foo = ' Test';
  alert(A1.aa() + A2.foo);
  
  function B(){
      this.bb = function(){
          var i, j=[];
          var arr = ['Literal', 'Function'];
          for (i = 0; i < arr.length; i++){
              j[i] = arr[i];
          }
        return j[1];
      }
  }
  
  var B1 = new B();
  var B2 = new B();
  B.prototype.foo = ' Test';
  alert(B1.bb() + B2.foo);
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
Literal
var A = {
    aa : function(){
        var i, j=[];
        var arr = ['Literal', 'Function'];
        for (i = 0; i < arr.length; i++){
            j[i] = arr[i];
        }
        return j[0];
    }
};
var A1 = A;
var A2 = A1;
A1.foo = ' Test';
alert(A1.aa() + A2.foo);
ready
Function
function B(){
    this.bb = function(){
        var i, j=[];
        var arr = ['Literal', 'Function'];
        for (i = 0; i < arr.length; i++){
            j[i] = arr[i];
        }
        return j[1];
    }
}

var B1 = new B();
var B2 = new B();
B.prototype.foo = ' Test';
alert(B1.bb() + B2.foo);
ready

Revisions

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