2011-12-19 15 views

risposta

14

Prova console.dir.

console.dir(f); 
0

Perché una funzione non è un oggetto.

Se lo fai:

var f = function() {}; 
var my_instance = new f(); // aha! 
my_instance.a = 1; 
console.log(my_instance); 

Si dovrebbe ottenere ciò che vi aspettate.

Una funzione può essere essere una classe, ma mai un oggetto. Utilizzare new.

+0

Sbagliato. Una funzione * è * un oggetto. –

+0

Le funzioni JavaScript sono oggetti (sono "di prima classe"). Non c'è alcun problema con l'assegnazione di una proprietà a una funzione ('f.a' nella domanda). È un buon modo per emulare i campi statici in JavaScript. Nel tuo esempio, la proprietà 'a' sarà presente solo nell'istanza' my_instance'. –

3

console.dir elenca tutte le proprietà definite di un oggetto. Penso che questo sia probabilmente quello che stai cercando.

Come questo sembra in FF (Firebug)

console.dir in Firebug

Come tale appare in console di Chromium

console.dir in Chromium

non sono sicuro se c'è qualche documentazione Chrome su questa funzionalità, ma there is Firebug documentation suOggetto.

Problemi correlati