Rumah  >  Artikel  >  hujung hadapan web  >  Penjelasan terperinci tentang sifat prototaip jQuery dan kaedah prototaip_jquery

Penjelasan terperinci tentang sifat prototaip jQuery dan kaedah prototaip_jquery

WBOY
WBOYasal
2016-05-16 15:51:071731semak imbas

Pertama, mari kita lihat sifat prototaip dan kaedah yang ditakrifkan dalam jQuery 1.7.1?

Yang pertama ialah atribut pembina

Saya percaya pembangun yang biasa dengan bahagian berorientasikan objek js sudah biasa dengannya, iaitu fungsi yang digunakan untuk mengembalikan penciptaan atribut objek Berikut ialah contoh mudah:

function Person(){};
    var person=new Person();
    alert(person.constructor); //function Person(){}

Apabila kami menulis warisan, kami suka meletakkan semua sifat dan kaedah prototaip dalam literal objek yang berasingan Ini akan menyebabkan atribut pembina tidak konsisten dengan penunjuk "sebenar".

  function Person(){

    }

    Person.prototype={
      say:function(msg){
        alert(msg); 
      }
    }

    var person=new Person();
    person.say('hello');
    alert(person.constructor); //function Object(){[native code]}

Penunjukan akan berubah pada masa ini kerana objek literal adalah contoh Object Sememangnya, atribut pembina akan melaksanakan Objek Untuk membetulkan "ralat" ini, ia biasanya perlu diubah suai secara manual kod. Penjelasan constructor:jQuery dalam kod sumber

atribut pemilih Atribut

pemilih tidak berguna untuk menggunakan jquey sebagai perpustakaan js Ia digunakan terutamanya untuk membangunkan pemalam atau pengubahsuaian berdasarkan jquery Atribut ini akan mengembalikan rentetan pemilih untuk mendapatkan objek jquery semasa, contohnya:

var obj=$('div a');
console.log(obj.selector);//'div a'

atribut jquery

Harta ini mengembalikan versi jQuery yang sedang digunakan

console.log($('body').jquery); //1.7.1

atribut panjang

Atribut ini mengembalikan bilangan elemen yang terkandung dalam objek jquery Contohnya:

console.log ( $('body') .length); //1
Kod sumber bagi empat atribut ini adalah seperti berikut:

  constructor: jQuery,


  // Start with an empty selector
  selector: "",

  // The current version of jQuery being used
  jquery: "1.7.1",

  // The default length of a jQuery object is 0
  length: 0,

kaedah saiz

// The number of elements contained in the matched element set
  size: function() {
    return this.length;
  },

Kaedah ini mengembalikan atribut panjang objek jquery Adalah disyorkan untuk menggunakan atribut panjang, yang boleh mengurangkan overhed panggilan fungsi yang tidak diperlukan

kaedah toArray

toArray: function() {
    return slice.call( this, 0 );
  },
Pulihkan semua elemen DOM dalam koleksi jQuery ke dalam tatasusunan.

alert($('li').toArray());
[<li id="foo">, <li id="bar">]
Pertama sekali, kaedah hirisan di sini telah dikekalkan dalam pembina jQuery, iaitu kaedah prototaip Array

// Save a reference to some core methods
87 toString = Object.prototype.toString,
88 hasOwn = Object.prototype.hasOwnProperty,
89 push = Array.prototype.push,
90 slice = Array.prototype.slice,
91 trim = String.prototype.trim,
92 indexOf = Array.prototype.indexOf,

Laksanakan penyamaran objek melalui kaedah panggilan Melepasi dalam parameter 0 bermakna tiada pemintasan Memandangkan kaedah ini akan mengembalikan tatasusunan bersih, yang merupakan tatasusunan tulen, ini merealisasikan perubahan daripada objek jquery kepada tatasusunan tulen kelas pada masa hadapan Kaedah ini juga boleh digunakan untuk penukaran dalam bentuk tatasusunan Contohnya:

<!doctype html>
<html>
  <head>
    <meta charset='utf-8'/>
    <title>jQuery源码分析-原型属性和方法</title>
  </head>
  <body>
    <div>
    </div>
    <div></div>   
  </body>
  <script src='jquery-1.7.1.js'></script>
  <script>
  var divs=document.getElementsByTagName('div');
  console.log(divs); //[div, div]
  alert(divs instanceof Array); //fasle

  alert(Array.prototype.slice.call(divs,0) instanceof Array); //true
  </script>
</html>

Jadi mempelajari kod sumber jqeury bukan sahaja berguna untuk menggunakan jquery, tetapi anda juga boleh mempelajari banyak kemahiran penggunaan js

dapatkan kaedah

// Get the Nth element in the matched element set OR
// Get the whole matched element set as a clean array
  get: function( num ) {
    return num == null &#63;

      // Return a 'clean' array
      this.toArray() :

      // Return just the object
      ( num < 0 &#63; this[ this.length + num ] : this[ num ] );
  },

Kaedah ini berfungsi dengan mencari salah satu elemen dalam objek jquery dan mengembalikan objek elemen nod asal dan bukannya objek jquery Kaedah ini menerima parameter jika parameter tidak wujud. Kemudian panggil kaedah toArray untuk mengembalikan tatasusunan yang mengandungi semua elemen Jika nombor itu lebih besar daripada 0, ia boleh diperoleh secara langsung dengan melanggan kaedah, kita perlu menyokong subskrip positif dan negatif. Jika apa yang ditulis bukan nombor, atau melebihi panjang elemen yang terkandung dalam objek semasa, tidak ditentukan.

akan dikembalikan.

Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn