Wenn ich Folgendes versuche:
%Vor%In Chrome wird der Fehler "Illegal Invocation" ausgelöst.
Aber wenn ich das tue:
%Vor%Ich habe versucht, ein bisschen zu suchen, und ich habe gelesen, dass es ein Kontexthema ist. Aber ich konnte immer noch nicht verstehen, was das bedeutet. Im ersten Beispiel erhält die Variable getUserMedia einen Verweis auf die Funktion, die nicht undefiniert ist (d. H. Im Falle von chrome ist es webkitGetUserMedia). Warum kann ich sie nicht mithilfe dieser Variablen aufrufen?
(Dies ist eine allgemeine JavaScript-Frage, nicht spezifisch für WebRTC .)
Offensichtlich muss der Kontext das Objekt navigator
sein, aus welchem Grund auch immer. Ich habe das gleiche mit console.log
bemerkt - es benötigt den console
Kontext.
Wenn Sie navigator.getUserMedia
ausführen, wird der Kontext automatisch auf navigator
gesetzt, wie zu jeder anderen Zeit, zu der Sie eine Methode für ein Objekt aufrufen. Wenn Sie jedoch nur getUserMedia
ausführen, ist der Kontext (standardmäßig) global und gibt daher einen Illegal Invocation Fehler aus.
Wenn Sie es immer noch als Variable speichern wollen, können Sie es zur Laufzeit mit dem richtigen Kontext aufrufen:
%Vor% Sie können auch bind
verwenden, um den Kontext mit der Variablen zu speichern, so dass Sie ihn nicht jedes Mal aufrufen müssen:
Tags und Links javascript function getusermedia invocation