>  기사  >  웹 프론트엔드  >  코드 분석 jQuery의 네 가지 정적 메서드 use_jquery

코드 분석 jQuery의 네 가지 정적 메서드 use_jquery

WBOY
WBOY원래의
2016-05-16 15:49:171341검색

jQery의 각 메소드에는 해당 코드 분석이 있으며 아래 소개를 참조하세요.

isFunction 메서드

함수인지 테스트하는 데 사용되는 개체

예:

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);
 })

실행 결과:

코드 복사 코드는 다음과 같습니다.

[ 참, 거짓, 거짓, 참, 거짓 ]

소스코드 분석:

// 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";
},

우선 버전 1.3부터 ​​버그가 있다는 점을 말씀드리자면, IE에서는 Alert와 같은 일부 DOM 메소드와 함수가 false를 반환하게 됩니다. 다시 작성하면 누군가가 인스턴스 오브 메소드를 사용하도록 제안했지만 ie6에는 여전히 문제가 있습니다. 아직까지는 이 버그가 해결되지 않았습니다. 자세한 내용은 공식 홈페이지의 버그 페이지를 참조하세요. 1.7.1 버전을 분석하고 있으므로 먼저 이 버전을 따르겠습니다. 반환 결과가 문자열 함수인지 확인

isArray 메소드

배열인지 테스트하는 데 사용되는 개체

예:

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

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

isFunctoin과 같이 type 메소드의 반환 결과를 직접 사용

isNumeric 메서드

인수가 숫자인지 확인합니다.

$.isNumeric() 메서드는 인수가 숫자 값을 나타내는지 여부를 확인합니다. 그렇다면 true를 반환합니다. 그렇지 않으면 false를 반환합니다. 매개변수는 모든 유형이 될 수 있습니다.

예:

$.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

소스코드 분석:

코드 복사 코드는 다음과 같습니다.

isNumeric: 함수( obj ) {
           return !isNaN( parseFloat(obj) ) && isFinite( obj );
},

이 메소드는 Number 유형을 결정하지 않고 숫자처럼 보이는 유형을 결정합니다. 전달된 매개변수에 숫자가 포함되어 있으면 true를 반환합니다. 먼저, parsFloat 메소드를 사용하여 매개변수를 배열로 변환합니다. 이 메서드는 필터링을 위해 매개 변수의 숫자 부분을 유지합니다. 결과가 NaN이 아니고 최대값을 초과하지 않으면 true이고, 그렇지 않으면 false를 반환합니다

isWindow 메소드

창 개체인지 테스트하는 데 사용됩니다

<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>

객체가 윈도우인지 판단하는 대략적인 방법입니다. 전달된 객체가 만족하고 setInterval 메서드가 있으면 해당 객체는 윈도우 객체로 간주됩니다. 이제 이 메서드를 변경하여 윈도우 객체인지 여부를 판단합니다. 창 개체에 대한 자세한 내용은 나중에 분석됩니다. 위 내용을 모두 재미있게 즐기시기 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.