Apakah yang terdapat di bawah jQuery.fn?
Dalam labirin kod jQuery, anda mungkin telah terjumpa harta jQuery.fn yang membingungkan. Rasa ingin tahu ini mencetuskan persoalan: Apakah rahsia mendalam yang disimpan oleh "fn" ini?
Jawapannya terletak pada seni bina asas jQuery. Pengecam jQuery, yang diwakili oleh simbol "$" ikonik, berfungsi sebagai fungsi pembina. Apabila dipanggil, ia mencipta kejadian yang mewarisi sifat daripada prototaip pembina.
Bayangkan fungsi pembina yang mudah:
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
Begitu juga, jQuery menggunakan struktur selari:
(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"
Pada dasarnya, jQuery.fn hanyalah alias kepada prototaip jQuery. Ia menyediakan titik akses yang mudah untuk mewarisi dan melanjutkan fungsi, membolehkan anda mengembangkan keupayaan jQuery dengan lancar dengan kaedah tersuai seperti myPlugin dalam contoh di atas. Ini mendedahkan kuasa pewarisan prototaip, konsep asas dalam pengaturcaraan berorientasikan objek yang membolehkan penggunaan semula kod, kebolehlanjutan dan kebolehselenggaraan.
Atas ialah kandungan terperinci Apakah Tujuan jQuery.fn?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!