Rumah >hujung hadapan web >tutorial js >Analisis kod jQuery empat kaedah statik use_jquery

Analisis kod jQuery empat kaedah statik use_jquery

WBOY
WBOYasal
2016-05-16 15:49:171394semak imbas

Setiap kaedah dalam jQery mempunyai analisis kod yang sepadan, yang sangat terperinci Sila lihat pengenalan di bawah:

kaedah isFunction

Objek yang digunakan untuk menguji sama ada ia adalah fungsi

Contoh:

function stub() {
  }
var objs = [
      function () {},
      { x:15, y:20 },
      null,
      stub,
      "function"
     ];
    jQuery.each(objs, function (i) {
    var isFunc = jQuery.isFunction(objs[i]);
    $("span:eq( " + i + ")").text(isFunc);
 })

Hasil jalankan:

Salin kod Kod adalah seperti berikut:

[ benar, salah, salah, benar, salah ]

Analisis kod sumber:

// See test/unit/core.js for details concerning isFunction.
// Since version 1.3, DOM methods and functions like alert
// aren't supported. They return false on IE (#2968).
isFunction: function( obj ) {
   return jQuery.type(obj) === "function";
},

Pertama sekali, izinkan saya memberitahu anda bahawa terdapat pepijat sejak versi 1.3 Beberapa kaedah dan fungsi DOM seperti alert akan kembali palsu dalam IE Selepas melihat pepijat ini, kerana kaedah toString dan kaedah valueOf ditulis semula, seseorang mencadangkan untuk menggunakan Kaedah instanceof mengesan tetapi masih terdapat masalah dalam ie6. Setakat ini, pepijat ini belum ditutup Untuk butiran, anda boleh merujuk kepada halaman pepijat laman web rasmi Kerana saya sedang menganalisis 1.7.1, saya akan mengikuti versi ini terlebih dahulu tentukan sama ada hasil pulangan ialah fungsi rentetan

kaedah isArray

Objek yang digunakan untuk menguji sama ada ia adalah tatasusunan

Contoh:

$("b").append( " + $.isArray([]) );//<b>true</b>

isArray: Array.isArray || function( obj ) {
    return jQuery.type(obj) === "array";
 },

Gunakan hasil pulangan kaedah jenis terus seperti isFunctoin

ialah kaedah Numerik

Menentukan sama ada hujahnya ialah nombor.

Kaedah $.isNumeric() menyemak sama ada hujahnya mewakili nilai angka. Jika ya, ia kembali benar. Jika tidak, ia kembali palsu. Parameter boleh terdiri daripada sebarang jenis

Contoh:

$.isNumeric("-10"); // true
$.isNumeric(16);   // true
$.isNumeric(0xFF);  // true
$.isNumeric("0xFF"); // true
$.isNumeric("8e5"); // true (exponential notation string)
$.isNumeric(3.1415); // true
$.isNumeric(+10);  // true
$.isNumeric(0144);  // true (octal integer literal)
$.isNumeric("");   // false
$.isNumeric({});   // false (empty object)
$.isNumeric(NaN);  // false
$.isNumeric(null);  // false
$.isNumeric(true);  // false
$.isNumeric(Infinity); // false
$.isNumeric(undefined); // false

Analisis kod sumber:

Salin kod Kod adalah seperti berikut:

isNumeric: function( obj ) {
           kembalikan !isNaN( parseFloat(obj) ) && isFinite( obj );
},

Kaedah ini tidak menentukan jenis Nombor tetapi jenis yang kelihatan seperti nombor Selagi parameter yang dihantar mengandungi nombor, ia akan kembali benar Pertama, gunakan kaedah parseFloat untuk menukar parameter kepada tatasusunan. Kaedah ini akan mengekalkan bahagian berangka parameter untuk penapisan Alih keluar bahagian lain, jika hasilnya bukan NaN dan tidak melebihi nilai maksimum, ia adalah benar, jika tidak ia mengembalikan palsu

kaedah is Window

Digunakan untuk menguji sama ada ia objek tetingkap

<div class="codetitle"><span><a style="CURSOR: pointer" data="41657" class="copybut" id="copybut41657" onclick="doCopy('code41657')"><U>复制代码</U></a></span> 代码如下:</div><div class="codebody" id="code41657">isNumeric: function( obj ) {
    return !isNaN( parseFloat(obj) ) && isFinite( obj );
},
</div>

Kaedah kasar untuk menentukan sama ada objek adalah tetingkap Jika objek yang dilalui berpuas hati dan mempunyai kaedah setInterval, objek tersebut dianggap sebagai objek tetingkap objek tingkap. Saya harap anda semua menikmati kandungan di atas.

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