프로그래밍 언어/jQuery, ajax

객체가 jQuery 객체인지 확인

Rateye 2021. 8. 30. 10:44
728x90
반응형
질문 : 객체가 jQuery 객체인지 확인

객체가 jQuery 객체인지 네이티브 JavaScript 객체인지 확인하는 빠른 방법이 있습니까?

예:

var o = {};
var e = $('#element');

function doStuff(o) {
    if (o.selector) {
        console.log('object is jQuery');
    }
}

doStuff(o);
doStuff(e);

분명히 위의 코드는 작동하지만 안전하지 않습니다. 잠재적으로 선택기 키를 o 객체에 추가하고 동일한 결과를 얻을 수 있습니다. 객체가 실제로 jQuery 객체인지 확인하는 더 좋은 방법이 있습니까?

(typeof obj == 'jquery') 와 일치하는 것

답변

instanceof 연산자를 사용할 수 있습니다.

if (obj instanceof jQuery){
    console.log('object is jQuery');
}

설명 : jQuery 함수 (일명 $ )는 생성자 함수 로 구현됩니다. 생성자 함수는 new 접두어로 호출됩니다.

$(foo) 를 호출하면 내부적으로 jQuery는 이것을 new jQuery(foo) 1로 변환 합니다. 자바 스크립트는 초기화 진행 this 의 새로운 인스턴스를 가리 키도록 생성자 함수 내에서 jQuery 에있는 것과 그것의 속성을 설정, jQuery.prototype (일명 jQuery.fn ). instanceof jQuerytrue new 객체를 얻습니다.

1 실제로 new jQuery.prototype.init(foo) init 라는 다른 생성자 함수로 오프로드되었지만 개념은 동일합니다.

출처 : https://stackoverflow.com/questions/1853223/check-if-object-is-a-jquery-object
728x90
반응형