Front/JS & jQuery

[js] window.hasOwnProperty

오선지♬ 2025. 11. 4. 12:59
728x90
반응형

✅ 1. window는 “브라우저 전체 전역 객체”

브라우저에서 전역 변수나 전역 함수는 전부 window 안에 저장됨.

예)

 
var a = 10;

이건 사실:

 
window.a = 10;

과 같아.


✅ 2. hasOwnProperty()는 “직접 가진 속성이냐?” 확인

예시:

 
window.hasOwnProperty("a")   // true
window.hasOwnProperty("b")   // false

즉,

window 안에 a라는 변수가 존재하는지 확인하는 것.


✔ 쉽게 비유해보자

🏠 window = 우리 집
📦 속성(property) = 집 안 물건
🔍 hasOwnProperty(“물건”) = 그 물건이 집 안에 있나 확인

 
if (!window.hasOwnProperty("lodingAccountJsCheck")) {
    // 집 안에 없으면 → 물건 가져오기
}

✅ 3. 주 용도

✔ (1) 전역 변수 중복 정의 방지

 
if (!window.hasOwnProperty("myScriptLoaded")) {
    window.myScriptLoaded = true;
    // 스크립트 실행
}

같은 코드를 여러 번 불러도
이미 있으면 다시 실행되지 않도록 막음.

 

✔ (2) 동적 script 로드 시 중복 방지

if (!window.hasOwnProperty("loadPartnerJs")) {
    $.getScript("/js/src/partnerKeyman.js");
    window.loadPartnerJs = true;
}
 

이걸 안 하면, 페이지 이동 후 다시 들어왔을 때
JS 파일이 매번 계속 로드됨.


✔ (3) 전역에서 선언된 값이 정확히 있는지 체크할 때


✅ 4. 사용 시 주의점

❌ hasOwnProperty("abc") 는

• abc가 window의 직접적인 property일 때만 true
• prototype에 있는 건 false


✔ 결론

window.hasOwnProperty("속성명")
→ window(전역)에 해당 변수/함수가 있는지 검사하는 것
→ 보통 “중복 로딩 방지”용으로 많이 사용됨

728x90
반응형

'Front > JS & jQuery' 카테고리의 다른 글

[jQuery] $.getScript  (0) 2025.11.05
[DB][MySQL] JSON_OVERLAPS()  (0) 2025.10.28
[js] FullCalendar.js 클릭 이벤트 설정 위치  (0) 2025.10.17
[js] Date 객체끼리 뺄셈(-)  (0) 2025.10.04
[js] getTime()  (0) 2025.10.03