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 |