2015-07-06 30 views
5

1. var f = new Function("a", "b", "return a+b")Qual è la differenza tra queste funzioni create da `Funzione`?

2. var f2 = Function("a", "b", "return a+b")

f e f2 entrambi sono una funzione anonima. f(1,2) e f2(1,2) entrambi restituiscono 3. Quindi c'è qualche differenza interna tra i due? Function restituisce internamente un oggetto funzione? Differenza dall'uso del Function come costruttore new Function(...)?

risposta

7

Dal ECMAScript 5.1 specs:

Quando Function è chiamata come una funzione piuttosto che come un costruttore, è crea e inizializza un nuovo oggetto Function. Pertanto la funzione chiamata Funzione (...) equivale all'espressione di creazione dell'oggetto nuova Funzione (...) con gli stessi argomenti.

+0

Fantastico! appena controllato con ecma 6, stessa spec. :) – user3470598

Problemi correlati