Lesen Sie den nativen JavaScript-Code


75

Gibt es eine Möglichkeit, die Deklaration des nativen JavaScript-Codes anzuzeigen? Immer wenn ich versuche, eine native Funktion in Chrome oder Firefox zu betrachten, heißt es " native code":

> String.fromCharCode
function fromCharCode() { [native code] }

Was bedeutet das und gibt es ein Tool, mit dem ich den tatsächlichen Code lesen kann?


3
Mögliches Duplikat des nativen Inspektionscodes
Matt Ball

Antworten:


86

Der Grund, warum Chrome oder Firefox sagt, dass der Code nativ ist, ist, dass er wirklich nativ ist - die Entwickler von WebKit und Firefox haben diese Funktionalität in C oder C ++ codiert, nicht in JavaScript. Wenn Sie jedoch den tatsächlichen Code anzeigen möchten, können Sie sich die Quell-Repositorys für Chromium und Firefox ansehen .


17
Ich stimme zu, aber ich dachte, vielleicht gibt es eine Erweiterung, die das für mich erledigt. Ich kann in die Dokumentation schauen, habe aber nach einer Verknüpfung gesucht.
emphaticsunshine

Gibt es eine Möglichkeit, in nativen Webkit-Code für Safari zu schauen? Ich debugge ein Problem mit webkitAudioContext (HTML5 WebAudio API). Der Umgang mit ScriptProcessorNode funktioniert gut in Chrome und Firefox und verhält sich in Safari seltsam. Gibt es eine Möglichkeit zum Debuggen mit Safari-Code, da dieser nicht geöffnet ist ptrace?
Singleton


0

Firefox unterstützt jetzt die Überprüfung von "[nativen Code]" - Objekten über Standard-Entwicklungstools.

Um es in Aktion zu sehen:

  1. Update Firefox (funktioniert definitiv mit v68 +, funktioniert möglicherweise auch mit älteren Versionen)
  2. Öffnen DevTools
  3. Gehe zur Konsole
  4. Geben Sie den Namen eines nativen Objekts ein, z. B. "Dokument".
  5. Drücken Sie die Eingabetaste
  6. Verrückt nach all diesen kleinen Dropdown-Pfeilen

FireFox - "nativen Code" überprüfen - Dokumentobjekt

Chrome gibt leider immer noch ƒ Document () {[nativer Code]} zurück .

Chrome - Überprüfen Sie NICHT "nativen Code" - Enttäuschung


1
Dies zeigt nicht den Quellcode der Funktion, sondern nur die Objekteigenschaften des Funktionsobjekts wie dies der console.dir(Document)Fall ist.
Bergi

Ich stimme Bergi zu. Ich habe FF 80 verwendet, lief Number.prototype.constructor.toString()und bekam "function Number() { [native code] }"als Ausgabe.
Mr. Polywhirl
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.