warum $ mit $self und $body setzen? Und ist self dasselbe wie $self [duplicate]

Lesezeit: 2 Minuten

Benutzer-Avatar
DNA-Mädchen

Ich lerne jQuery, indem ich versuche, den Code anderer Leute zu verstehen. Ich bin darauf gestoßen:

jQuery.fn.myFunc = function(options, callback) {

//stuff

  jQuery(this)[settings.event](function(e) {
    var self = this,
    $self = jQuery( this ),
    $body = jQuery( "body" );
     //etc.
  }

//more stuff

}

Mein Verständnis ist das $ bezieht sich auf das jQuery-Objekt. Warum also setzen $ mit $self und $body? Und ist self das Gleiche wie $self?

Benutzer-Avatar
David Helling

$selbst hat damit wenig zu tun $, was in diesem Fall ein Alias ​​für jQuery ist. Einige Leute ziehen es vor, ein Dollarzeichen zusammen mit der Variablen zu setzen, um zwischen regulären Variablen und jQuery-Objekten zu unterscheiden.

Beispiel:

var self="some string";
var $self="another string";

Diese werden als zwei verschiedene Variablen deklariert. Es ist, als würde man private Variablen mit einem Unterstrich versehen.

Ein etwas beliebtes Muster ist:

var foo = 'some string';
var $foo = $('.foo');

Auf diese Weise wissen Sie später im Code, dass $foo ein zwischengespeichertes jQuery-Objekt ist.

  • Sehr deutlich. Ich weiß es zu schätzen, dass Sie erklären, warum jemand die $var-Konvention verwenden könnte.

    – DNA-Mädchen

    16. Dezember 2009 um 18:32 Uhr

  • Wie gehen Sie mit Variablen um, die mit einem $ für jquery variable und jslint beginnen?

    – Jeremy D

    1. Februar 2014 um 7:42 Uhr

Das ist reines JavaScript.

Daran ist nichts Besonderes $. Es ist nur ein Zeichen, das in Variablennamen verwendet werden kann.

var $ = 1;
var $$ = 2;
alert($ + $$);

jQuery weist nur seine Kernfunktion einer aufgerufenen Variablen zu $. Der Code, den Sie zugewiesen haben this zu einer lokalen Variablen namens self und die Ergebnisse des Aufrufs von jQuery mit this als Argument für eine globale Variable aufgerufen $self.

Es ist hässlich, schmutzig, verwirrend, aber $, self und $self sind alles verschiedene Variablen, die zufällig ähnliche Namen haben.

  • Geschmäcker sind verschieden, aber ich finde es überhaupt nicht hässlich. Das Dollarzeichen wird seit langem zur Bezeichnung von $STRINGS und anderen speziellen Variablen verwendet. Ich werde diese Konvention auf jeden Fall annehmen.

    – IJ Kennedy

    2. November 2013 um 0:45 Uhr

Benutzer-Avatar
BalusC

Nein, das ist es sicherlich nicht. Es ist nur ein weiterer Variablenname. Das $() du redest eigentlich von der jQuery-Kernfunktion. Das $self ist nur eine Variable. Sie können es sogar umbenennen in foo Wenn Sie möchten, ändert dies nichts. Das $ (und _) sind gültige Zeichen in einer Javascript-Kennung.

Warum dies so gemacht wird, ist oft nur eine Codekonvention oder um Konflikte mit umgekehrten Schlüsselwörtern zu vermeiden. Ich benutze es oft für $this wie folgt:

var $this = $(this);

self und $self sind nicht dasselbe. Ersteres ist das Objekt, auf das “this” zeigt, und letzteres ein jQuery-Objekt, dessen “Scope” das Objekt ist, auf das “this” zeigt. Ebenso ist $body nicht das Body-DOM-Element, sondern das jQuery-Objekt, dessen Geltungsbereich das Body-Element ist.

Das Dollarzeichen als Präfix im Variablennamen ist eine Verwendung aus dem Konzept der ungarische notation.

1011650cookie-checkwarum $ mit $self und $body setzen? Und ist self dasselbe wie $self [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy