JavaScript and __proto__ - what browsers use it?

后端 未结 4 603
臣服心动
臣服心动 2020-12-06 00:59

What web browsers use the __proto__? Mozilla states that:

Note that __proto__ may not be available in JavaScript versions ot

相关标签:
4条回答
  • 2020-12-06 01:20

    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;  
    }
    
    0 讨论(0)
  • 2020-12-06 01:29

    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
    0 讨论(0)
  • 2020-12-06 01:36

    This is not direct answer to the question but it may help for those who wanna know the prototype of the object instance (this is for what __proto__ is often used). All modern browsers (including IE9) supports getPrototypeOf() which can be used to determine the object's prototype. The irony of fate is that some still actual browsers like IE7 and IE8 that don't support Object.getPrototypeOf(obj) don't support obj.__proto__ as well. For those browsers you can use obj.constructor.prototype. However it is a bit dangerous because this property can be redefined.

    0 讨论(0)
  • 2020-12-06 01:40

    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.

    0 讨论(0)
提交回复
热议问题