2009-07-08 9 views

Répondre

13

La même chose que:

jQuery.prototype = {} 
jQuery.fn = jQuery.prototype 

À mon avis avoir en une seule ligne fait plus clair que votre attribution de la même valeur aux deux variables

+0

Merci beaucoup. Cela l'éclaircit vraiment. –

2

La déclaration x = a = {} signifie que {} est affecté à a que est affecté à x. Donc, c'est égal à a = {}; x = a.

+0

Oui mais dans son exemple jQuery.fn est déjà la même entité que jQuery que jQuery.prototype. Le fn est juste un raccourci pour le prototype. – amischiefr

2

Une chose à savoir est que dans javascript, chaque expression a une valeur de retour, peu importe si elle a des effets secondaires (d'affectation)

De droite à gauche, vous avez les déclarations suivantes:

(jQuery.fn = (jQuery.prototype = ({}))) 

l'évaluation de la première partie donne un objet vide: {}:

(jQuery.fn = (jQuery.prototype = {})) 

la deuxième instruction exécute et met à jQuery.prototype {}, et il évalue à j Query.prototype, donnant la deuxième partie:

(jQuery.fn = jQuery.prototype) 

qui fixe jQuery.fn à jQuery.prototype, qui évalue ensuite:

jQuery.fn 

qui ne fait rien.

+1

L'évaluation de la première partie donne un objet vide (pas un 'tableau') - cela peut être une distinction importante. – steamer25

+0

En fait, jQuery.fn = jQuery.prototype, pas jQuery.fn = {}, car jQuery.fn et jQuery.prototype sont censés être aliasés. –

+0

en javascript land ne sont pas des tableaux/tables/objets la même chose? Cela fait longtemps. Peu importe, j'ai mis à jour ma réponse. – FryGuy

3

Cela équivaut à:

jQuery.prototype = {} 
jQuery.fn = jQuery.prototype 

En d'autres termes jQuery.fn et jQuery.prototype les deux vers le même objet.

Questions connexes