views:

117

answers:

3

Hi,

What web browsers use the __proto__? Mozilla states that:

Note that __proto__ may not be available in JavaScript versions other than that in Mozilla.

A: 

The end of the sentence you posted is See below for workarounds., where there is a discussion on an alternative method extends() that uses super.prototype:

function extend(child, super){  
  for (var property in super.prototype) {  
    if (typeof child.prototype[property] == "undefined")  
      child.prototype[property] = super.prototype[property];  
  }  
  return child;  
}
Oded
I know, but I want to know what web browsers are supporting `__proto__`. Depending on the answer, I may not even need that kind of functionality.
rFactor
+2  A: 

The Browser Security Handbook has a table showing which browsers expose __proto__.

Currently, those browsers are:

  • Firefox 2
  • Firefox 3
  • Safari
  • Chrome
  • Android

Those excluded:

  • IE 6, 7, 8
  • Opera
strager
+3  A: 

Click here for your answer.

Details

The most general way would be to test this page in different browsers:

<html>
  <head>
    <script type="text/javascript">
      function a() {}
      if ( (new a).__proto__ === a.prototype )
          alert('supported');
    </script>

  </head>
</html>

It alerts if a browser supports __proto__. I've submitted it to browsershots.org, which will create screenshots of the page in many different browsers. Thus, you should see--by means of the alert message--which browser does support it.

artistoex
Thank you! To sum up, it does not work on IE, Safari < 5 and Opera < 10.50.
rFactor