Vraag Wat betekent "[native code]"?


Ik heb geprobeerd de jQuery-code te onderzoeken, dus ik heb dit gebruikt:

document.write($.constructor);

jsfiddle 

Ik heb dit resultaat:

function Function() { [native code] }

Wat doet [native code] gemiddelde? Waarom kan ik de echte code niet zien?

 Getest met Google-Chrome 


44
2018-06-27 20:54


oorsprong


antwoorden:


$, jQuery is gewoon een functie. Zonder het aan te roepen, is het gewoon een gewone functie. De constructor van een functie is Function, Vandaar $.constructor shows [native code].


19
2018-06-27 20:59



Wanneer u functies definieert in een geïnterpreteerde taal (in tegenstelling tot een gecompileerde taal). U hebt toegang tot het bestand / de tekenreeks / tekst die de functie definieert.

In JavaScript kunt u bijvoorbeeld de definitiehoofdtekst lezen van een functie die u hebt gedefinieerd.

Als je hetzelfde probeert te doen voor een functie die dat wel is ingesloten door constructie in JavaScript is het niet geïmplementeerd als tekst, maar als binair. Er is geen reden om de binaire code weer te geven die deze functie implementeert, omdat deze niet leesbaar is en mogelijk zelfs niet beschikbaar is.

jQuery breidt standaard JavaScript-gedrag uit. Het is een van de redenen waarom het zo hoog gewaardeerd en geprezen werd in tegenstelling tot Prototype.js bijvoorbeeld. Prototype was veranderend het natuurlijke gedrag van JavaScript dat mogelijke inconsistenties creëert wanneer Prototype wordt gebruikt naast een ander stuk code dat op normale functionaliteit is gebaseerd.

tl; dr:

jQuery breidt JavaScript uit, er is functionaliteit geïmplementeerd met behulp van native code (wat qua prestaties een goede zaak is).


32
2018-06-27 21:00