2016-05-21 8 views
1

Ich habe gerade gesehen, some dude schlagen Sie die folgende Syntax anstelle der, die ich normalerweise (immer) verwenden.

Die allgemeine Qualität seiner Antwort auf die ursprüngliche Frage deutet darauf hin, dass er Sachen weiß und nicht nur horsting ist. Dennoch scheint es mir so, als ob die Gefahr besteht, den Umfang von jQuery dadurch zu verschmutzen.

Bin ich richtig, vorsichtig zu sein, oder ist es ein guter Weg, meine eigenen Sachen in einem engen Rahmen zu halten? Soll man die Skopilität kombinieren und vorsichtig wie folgt vorgehen?

$myCoolStuff.thing1 = $(".ones"); 
$myCoolStuff.thing2 = $(".twos"); 
+0

Überprüfen Sie diesen Thread. http://stackoverflow.com/questions/205853/why-would-a-javascript-variable-start-with-a-dollar-sign –

+1

'$ newToMe =" Ich habe nicht so verwendet ";' das ist nicht alles auf dem globalen jQuery-Objekt festlegen. Das macht einfach eine Variable namens $ newToMe. Um etwas auf dem jQuery-Objekt zu setzen, müsste man etwas tun wie: '$ .newToMe =" "' oder 'jQuery.newToMe' –

+0

Ein weiteres betreffendes Thema: http://stackoverflow.com/questions/6209462/when- why-to-prefix-Variablen-mit-wann-verwenden-jquery? lq = 1 –

Antwort

1

In Bezug auf "jQuery Scope Pollutionen" sind die beiden Alternativen gleich. $me ist nur eine (von vielen) Konventionen, um eine Variable zu benennen - diese bezieht sich auf die Unterscheidung von jQuery-Objekten von regulären.

jedoch erwähnenswert ist, dass (der Code oben) $newToMe wird den globalen Bereich hinzugefügt werden (und in window gefunden), wo-wie oldWay nicht. Warum? Nun, das Schlüsselwort var wird dazu führen, dass es auf seinen aktuellen Kontext beschränkt wird.

+0

Oh, ich wurde durch die Antwort im Kontext von jQuery in die Irre geführt. Aber natürlich müssen wir, um es als jQuery-Objekt zu bezeichnen, im Namen (* $. Beep *) abspeichern. Sonst geht es in * window.beep * oder vielmehr * window. $ Beep *, genau wie du sagst. –

+0

_ where-as 'oldWay' wird nicht" _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ –