Welche Webbrowser verwenden __proto__
? Mozilla states das:JavaScript und __proto__ - welche Browser benutzen es?
Beachten Sie, dass
__proto__
möglicherweise nicht in anderen JavaScript-Versionen als in Mozilla verfügbar sind.
Welche Webbrowser verwenden __proto__
? Mozilla states das:JavaScript und __proto__ - welche Browser benutzen es?
Beachten Sie, dass
__proto__
möglicherweise nicht in anderen JavaScript-Versionen als in Mozilla verfügbar sind.
Klicken Sie here für Ihre Antwort.
Einzelheiten
Die allgemeinste Art und Weise dieser Seite in verschiedenen Browsern zu testen wäre:
<html>
<head>
<script type="text/javascript">
function a() {}
if ((new a).__proto__ === a.prototype)
alert('supported');
</script>
</head>
</html>
Es alarmiert, wenn ein Browser __proto__
unterstützt. Ich habe es an browsershots.org gesendet, die Screenshots der Seite in vielen verschiedenen Browsern erstellen wird. Sie sollten also anhand der Warnmeldung sehen, welcher Browser dies unterstützt.
Das Ende des Satzes Sie auf dem Laufenden ist See below for workarounds.
, wo es eine Diskussion über eine alternative Methode ist extends()
die super.prototype
verwendet:
function extend(child, super){
for (var property in super.prototype) {
if (typeof child.prototype[property] == "undefined")
child.prototype[property] = super.prototype[property];
}
return child;
}
Ich weiß, aber ich möchte wissen, welche Web-Browser '__proto__' unterstützen. Abhängig von der Antwort brauche ich vielleicht nicht einmal diese Art von Funktionalität. – Tower
Ich verstehe nicht, warum Sie Eigenschaften von einem Objekt in ein anderes kopieren würden ... Dies verhindert den Zweck der leistungsfähigen prototypischen Vererbung in JS gebaut. – Marius
Die Browser Security Handbook ihr eine Tabelle hat, die __proto__
Browser aus.
Derzeit diese Browser sind:
Diejenigen ausgeschlossen:
Dies ist keine direkte Antwort auf die Frage, aber es kann für diejenigen hilfreich sein, die den Prototyp der Objektinstanz wissen wollen (dafür wird oft __proto__
verwendet). Alle modernen Browser (einschließlich IE9) unterstützen getPrototypeOf()
, mit denen der Prototyp des Objekts ermittelt werden kann. Die Ironie des Schicksals ist, dass einige noch aktuelle Browser wie IE7 und IE8, die Object.getPrototypeOf(obj)
nicht unterstützen, obj.__proto__
ebenfalls nicht unterstützen. Für diese Browser können Sie obj.constructor.prototype
verwenden. Es ist jedoch ein bisschen gefährlich, da diese Eigenschaft neu definiert werden kann.
Sie könnten '' __proto__' in Backticks \ '' für die Formatierung einschließen. –
Die Formatierung von StackOverflow ist nur dann ein Problem, wenn Sie sich nicht die Zeit nehmen, um zu verstehen, wie es funktioniert. – deceze
Nein Backticks Schlüssel auf Azerty Tastaturen FWIW –