Прочитайте власний код JavaScript


76

Чи є спосіб побачити декларацію власного коду JavaScript? Щоразу, коли я намагаюся розглянути власну функцію в Chrome або Firefox, вона пише " native code":

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

Що це означає, і чи існує якийсь інструмент, який допоможе мені прочитати фактичний код?


3
можливий дублікат перевірки власного коду
Matt Ball

Відповіді:


88

Причина, по якій Chrome або Firefox стверджує, що код є рідним, полягає в тому, що він справді є природним - розробники WebKit та Firefox закодували цю функціональність на C або C ++, а не на JavaScript. Однак, якщо ви хочете побачити фактичний код, ви можете подивитися вихідні сховища для Chromium та Firefox .


17
Я згоден, але я думав, що, можливо, є якесь розширення, яке робить це для мене. Я можу переглянути документацію, але я шукав ярлик.
emphaticsunshine

Чи є спосіб вивчити власний код вебкіту для Safari? Я налагоджую проблему з webkitAudioContext (API HTML5 WebAudio). Робота з ScriptProcessorNode, чудово працює в Chrome і Firefox і дивно поводиться в Safari. Оскільки код Safari не відкритий, чи є спосіб для налагодження, використовуючи щось на зразок ptrace?
одиночка

31

Не в середовищі JavaScript, але ви можете переглянути джерело для реалізацій з відкритим кодом.

Google V8: http://code.google.com/p/v8/source/browse

Mozilla SpiderMonkey: https://developer.mozilla.org/en/SpiderMonkey


8
Це дуже корисно, але я шукав у консолі чи щось інше. Ярлик. Перехід до документації та пошук її дратував. У будь-якому разі дякую за відповідь.
emphaticsunshine

0

Firefox тепер підтримує перевірку об’єктів "[власний код]" за допомогою стандартних інструментів розробника.

Щоб побачити це в дії:

  1. оновити Firefox (безумовно, працює в / v68 +, може працювати і зі старими версіями)
  2. відкриті інструменти розробника -
  3. перейдіть до консолі
  4. введіть ім'я власного об'єкта, наприклад, "Документ"
  5. хіт повернення
  6. зійти з розуму на всіх тих маленьких стрілках спадного меню

FireFox - перевірити "власний код" - об'єкт документа

На жаль, Chrome все ще повертає ƒ Document () {[власний код]} .

Chrome - НЕ перевіряти "рідний код" - розчарування


1
Тут не відображається вихідний код функції, він просто показує властивості об’єкта об’єкта функції, як console.dir(Document)це робить.
Бергі

Я згоден з Бергі. Я використав FF 80, побіг Number.prototype.constructor.toString()і отримав "function Number() { [native code] }"як вихід.
Містер Полівірл,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.