2015-09-18 8 views
13

Sto leggendo lo ECMA Script 2015 specification.Codice non ECMAscript per la funzione

Sotto functions I vedi:

Oltre alle sue proprietà, una funzione contiene codice eseguibile e lo stato che determinano come si comporta quando viene richiamato. Il codice di una funzione può essere o non essere scritto in ECMAScript(corsivo aggiunto).

In quali circostanze il codice di una funzione non può essere scritto nello script ECMA?

risposta

14

Le funzioni native fornite dall'ambiente di esecuzione (come i String e Array classi o setTimeout, o il browser DOM) sono spesso scritti (o alimentati da altre funzioni scritte in C.)

+0

"[codice nativo]" Che cosa mi confonde è che c'è una sezione direttamente sotto la funzione per "funzioni built-in", dove dice " Esempi di funzioni integrate includono parseInt e Math.exp. Un'implementazione può fornire funzioni incorporate dipendenti dall'implementazione che non sono descritte in questa specifica. " Questo sembra essere distinto dalla precedente sezione "funzione". –

+0

@juwiley: la maggior parte degli host fornisce altre funzioni che non sono coperte dalle specifiche ECMAScript (ad esempio, il DOM o 'console'). – SLaks

+0

Ecco alcuni materiali di lettura per chi è interessato a se e come possono scrivere questi tipi di funzioni (per Nodo): [1] (https://github.com/kkaefer/node-cpp-modules), [2] (http://syskall.com/how-to-write-your-own-native-nodejs-extension/), [3] (http://joseoncode.com/2012/04/10/writing-your-first -nativo-modulo-per-nodo-punto-js-su-windows /), [4] (http://kkaefer.github.com/node-cpp-modules/), [5] (http: // nkzawa .tumblr.com/post/46089897239/how-to-nativo-node-addons scrittura). – sdgluck

9

In quali circostanze il codice di una funzione non può essere scritto nello script ECMA?

Funzioni principali fornite dal motore JavaScript. Per esempio. Array.prototype.find:

> Array.prototype.find 
find() { [native code] } 

Per esempio V8, un motore JavaScript di Chrome, è implementare in C++, in modo che il metodo è implementato in C++.

+0

Penso che ci sono molte funzioni scritte in javascript (privilegiato) nell'implementazione V8 che sono ancora in "[codice nativo]' – Bergi

Problemi correlati