2011-12-12 14 views
5

Come posso ottenere che ottengo jQuery-Intellisense nel seguente esempio di codice?jQuery-Intellisense per argomenti passati

function doSomething($jQueryObject) { 
    $jQueryObject. // I want to have Intellisense here 
}; 

var $parameter = jQuery('body'); 
doSomething($parameter); 

Il problema è che Intellisense non sa che il parametro per la funzione è un oggetto jQuery. Come potrei dire alla funzione il tipo di parametro?

So che avrei potuto scrivere in funzione qualcosa come

$obj = $j($jQueryObject); 

per creare un nuovo jQuery-Objekt, ma vorrei sapere se c'è un altro modo per risolvere questo.

+1

Cosa editore stai usando? –

+0

Editor di inbuild VS 2010 – iappwebdev

risposta

4

Javascript è un linguaggio generico che indica che il tipo non è dichiarato esplicitamente, ma deciso internamente in fase di esecuzione.

Interllisense non può determinare il tipo di variabili (qualunque sia l'editor) perché semplicemente non è definito. Puoi passare qualunque cosa desideri al tuo metodo doSomething(). Questo è un modo potente e flessibile di programmazione. Il lato errato è che potrebbe richiedere l'implementazione di alcuni controlli per evitare errori/eccezioni

Se si sta costruendo una sorta di framework o API per altri sviluppatori da utilizzare, si dovrebbe considerare di testare il tipo di parametri.

per testare un jQuery digitato variabile, fare questo:

var $obj = $jQueryObject instanceof jQuery 
       ? $jQueryObject 
       : $($jQueryObject); 

Nota: anteponendo il nome della variabile con $ è un buon indicatore della natura jQuery della variabile previsto per lo sviluppatore tramite la funzione.

Edit: sostituito da typeof === "jQuery"instanceof jQuery

+0

No, framwork non è per sviluppatore esterno. Bene, allora devo creare un nuovo jQuery-Object. Grazie per la tua risposta utile! – iappwebdev

+0

A proposito: 'console.log (typeof $ j ('body'));' mi fornisce 'object' e non' jQuery' – iappwebdev

+1

Il mio errore, 'instanceof' dovrebbe essere usato e non' typeof'. Aggiornata la risposta. –

Problemi correlati