Какие веб-браузеры используют __proto__? Mozilla заявляет, что:

Обратите внимание, что __proto__ может быть недоступен в версиях JavaScript, отличных от Mozilla.

16
Tower 21 Июн 2010 в 11:32

4 ответа

Лучший ответ

Нажмите здесь, чтобы получить ответ.

Подробности

Самый общий способ проверить эту страницу в разных браузерах:

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

  </head>
</html>

Он предупреждает, если браузер поддерживает __proto__. Я отправил его на browsershots.org, который будет создавать скриншоты страница в разных браузерах. Таким образом, с помощью предупреждающего сообщения вы должны увидеть, какой браузер его поддерживает.

8
4 revs 21 Июн 2010 в 17:56

Это не прямой ответ на вопрос, но он может помочь тем, кто хочет знать прототип экземпляра объекта (для этого часто используется __proto__). Все современные браузеры (включая IE9) поддерживает getPrototypeOf() который можно использовать для определения прототипа объекта. Ирония судьбы заключается в том, что некоторые все еще актуальные браузеры, такие как IE7 и IE8, которые не поддерживают Object.getPrototypeOf(obj), также не поддерживают obj.__proto__. Для этих браузеров вы можете использовать obj.constructor.prototype. Однако это немного опасно, потому что это свойство может быть переопределено.

0
Konstantin Smolyanin 26 Сен 2013 в 14:35

Конец предложенного вами предложения - See below for workarounds., где обсуждается альтернативный метод extends(), в котором используется 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;  
}
3
Oded 21 Июн 2010 в 07:37

Руководство по безопасности браузера содержит таблицу, показывающую, какие браузеры предоставляют доступ {{ X0 } } .

В настоящее время эти браузеры:

  • Firefox 2
  • Firefox 3
  • Сафари
  • Хром
  • Android

Те исключены:

  • IE 6, 7, 8
  • Опера
7
strager 21 Июн 2010 в 07:46