18 Stimmen

eine einfache Frage zu jquery closure

Was bedeutet das?

(function($){
})(jQuery);

um die Frage klarer zu machen, was bedeutet das Einschließen einer Funktion in Klammern in JS (sorry, ich bin ein wenig verwirrt über das Konzept der Schließungen). Was ist mit dem $-Parameter? und die "jQuery" in der Endklammer?

Kann ich dasselbe mit mootools tun und sie in einer JS-Datei kombinieren?

(function($){})(jQuery);

(function($){})(mooTools);

Ich habe bisher nur mit Jquery gearbeitet und plane, mit Mootools zu arbeiten.

0voto

Dimitar Christoff Punkte 26084

Das mootools-Äquivalent für Namespacing $ ist:

(function($) {
    // $ is the mootools one (aliasing document.id)
})(document.id);

Sie können sie in einer Datei kombinieren, aber beachten Sie, dass mootools ein prototypisches Framework ist und $ nur dem Zweck eines Selektors dient, während alle Funktionen in die Element-/Array-/Klassen- usw. Prototypen gehen. daher funktioniert dies in mootools:

var foo = $("bar");
foo.hide(); // the element inherits .hide()

aber in jquery wird es fehlschlagen und muss umgeschrieben werden als

var foo = $("#bar");
$(foo).hide();

Der Punkt ist, dass man das Zeug, das Mootools in Prototypen exportiert, nicht mit einem Namensraum versehen kann.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X