Que se cache-t-il sous jQuery.fn ?
Dans le labyrinthe du code jQuery, vous êtes peut-être tombé sur l'énigmatique propriété jQuery.fn. Cette curiosité suscite la question : quels secrets profonds ce "fn" recèle-t-il ?
La réponse réside dans l'architecture fondamentale de jQuery. L'identifiant jQuery, représenté par le symbole emblématique "$", sert de fonction constructeur. Lorsqu'il est invoqué, il crée des instances qui héritent des propriétés du prototype du constructeur.
Imaginez une fonction de constructeur simple :
function Test() { this.a = 'a'; } // Prototype property adds inherited property Test.prototype.b = 'b'; // Instantiate and access properties var test = new Test(); console.log(test.a); // "a", own property console.log(test.b); // "b", inherited property
De même, jQuery adopte une structure parallèle :
(function() { // Constructor accepts argument and ensures use of `new` operator var foo = function(arg) { if (!(this instanceof foo)) return new foo(arg); this.myArg = arg; }; // Alias `fn` property to `prototype` property foo.fn = foo.prototype = { // Define methods here }; // Expose the library window.foo = foo; })(); // Extension via `fn` alias foo.fn.myPlugin = function () { // Access inherited argument alert(this.myArg); // Chainability requires returning `this` return this; }; // Usage: extend and invoke plugin method foo("bar").myPlugin(); // alerts "bar"
En substance, jQuery.fn est simplement un alias du prototype jQuery. Il fournit un point d'accès pratique pour hériter et étendre les fonctionnalités, vous permettant d'étendre de manière transparente les capacités de jQuery avec des méthodes personnalisées comme myPlugin dans l'exemple ci-dessus. Cela dévoile la puissance de l'héritage des prototypes, un concept fondamental de la programmation orientée objet qui permet la réutilisation, l'extensibilité et la maintenabilité du code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!