- 범위 : 메서드 < 함수
단독으로 존재하는 것 : 함수
객체 안에 있는 기능들 : 메서드
- 객체와 인스턴스
객체 : 자주 사용하는 요소로 미리 정의되어 있음.
인스턴스 : 필요할때마다 만들어서 사용함. 객체를 복제해서 만듦.
- 프로퍼티(속성)와 메서드(기능)
* 객체의 종류 : 내장객체 , 사용자 정의 객체, 브라우저와 관련된 객체
- 내장객체
ex. Array 객체의 length : 요소사용방법 - 배열명.length
- 사용자 정의 객체
사용자가 필요데 따라 직접 정의한 객체
[ 사용자 객체 정의 기본 문법]
let 객체를 저장할 변수명 = {
속성명1 : 값1,
속성명2 : 값2,
... 생략 ...
속성명n : 값n
}
- 객체 내의 속성에 접근하는 방법 : 객체명.속성명 ex. Array.length
// 객체 선언, 할당.
let person = {
name : "홍길동",
age : 20
}
let person2 = {
name : "이순신",
age : 44
}
function test1(){
document.write(person + "<br>"); // 결과 : [object Object] - 속성명으로 접근해야 출력됨.
console.log(person); // colsole은 속성 출력됨. 결과: {name: '홍길동', age: 20}
// person 객체의 속성에 접근하는 방법 : person.속성명
document.write("이름 : " + person.name + "<br>");
document.write("나이 : " + person.age + "<br>");
}
- 웹브라우저가 제공하는 내장 객체
웹브라우저에서 제공하는 다양한 속성 및 기능을 활용할 수 있는 객체
window 라는 이름의 최상위 객체에서부터 계층구조로 다양한 객체가 제공됨.
[ window 객체 ]
- 최상위 객체, 기본 객체이므로 생략이 가능함.(window. 생략가능.)
- 속성(프로퍼티, 변수) : window.속성명으로 접근(window.status, window.opener, window.document 등으로 접근)
- 메서드(=기능 =동작 =함수) : window.메서드명() 으로 호출
=> window.open(), window.close() 등
<button onclick="openWindow()">새창 열기</button>
<button onclick="openWindow2()">새창 열기2</button>
<button onclick="openWindow3()">네이버 열기</button>
<button onclick="closeWindow3()">네이버 닫기</button>
function openWindow(){
window.open("http://www.naver.com", "", "");
// => 옵션 항목에 크기 지정 생략 시 버튼을 누를때 마다 새 창 대신 새탭에 열림.
window.open("test1_popup.jsp", "", "width=500, height=400");
// => 창이름 생략시 버튼 클릭할 때마다 매번 새 창에 test1_popup.jsp가 열림(복수개 창 생성)
// 창이름( 아무 문자열 ) 지정 시 항상 동일한 하나의 창에 페이지 열림.
let popup = window.open("test2_popup.jsp", "my_popup", "width=500, height=400");
console.log(popup); // 창이 열리면 window 객체가 리턴되고, 차단되면 null 저장됨.
}
function openWindow2(){
// top, left 속성 지정 시 새창 열릴 좌표설정 가능(픽셀단위)
// 웹 사이트 URL 이나 문서파일 또는 이미지 파일 등 다양한 대상을 새창에서 표시 가능
// 기존에 열려있는 창의 이름과 동일한 이름을 지정 시 하나의 창에 다른 내용을 표시(갱신) 가능
window.open("../images/1.jpg", "my_popup", "width=400, height=300, top=400, left=400");
// => openwindow() 함수에서 열어놓은 새 창이 있을 경우 해당 창에 1.jpg 이미지 표시
window.open("../images/1.jpg", "my_popup2", "width=400, height=300, top=400, left=400");
// => 만약 my_popup이라는 이름이 아닌 다른이름 지정시 새 창에 열림.
window.close();
// 호출한 창을 닫는다. = 이 함수가 있는 창 = test2.jsp를 닫고, 1.jpg 창은 열려있다.
}
let naver_window; // 다른 함수에서도 naver_window 변수에 접근 가능. 전역변수
function openWindow3(){
naver_window = window.open("http://www.naver.com", "naver", "width=400, height=300");
// => window.open() 메서드 리턴값을 변수에 저장 시 window 객체가 리턴되므로
// 새창에 대한 다양한 제어를 수행할 수 있다.
// => 단, naver_window 변수가 openwindow3() 함수 내에 선언되어 있으면
// 다른 함수에서는 접근이 불가능하다.
// => 따라서 다른 함수에서 naver_window 제어하려면 변수 선언부를 메서드 밖으로 빼면 됨.
window.close();
// 여기에 close 함수가 있으면 버튼이 있던 창(test2.jsp)이 꺼지고
// naver 창만 새로 열려있다.
}
function closeWindow3(){
window.close(); // 현재창 닫기 종료
naver_window.close(); // 에러msg : naver_window is not defined
// naver_window는 openWindow3() 함수에서만 쓰고 있을 경우 나오는 에러
// 현재는 let 전역변수로 사용하므로 자용 가능하다.
// 주의! naver_window 변수가 현재 함수에서 접근 가능하도록 전역변수 형태고 선언되어야 한다.
}
* 오늘의 퀴즈 *
<input type="button" value="장바구니담기" onclick="cart()">
Q. 장바구니 버튼을 클릭하면 "장바구니에 상품이 담겼습니다! 장바구니로 이동하시겠습니까?" 메시지 출력 후
확인버튼 클릭시 "test3_cart.jsp"페이지로 이동.
-tip. if문 안의 boolean 처리 방법 잊지말기!!
function cart(){
// "장바구니에 상품이 담겼습니다!\\n 장바구니로 이동하시겠습니까?" 메시지 출력 후
// 확인버튼 클릭시 "test3_cart.jsp"페이지로 이동처리
let msg = confirm("장바구니에 상품이 담겼습니다!\n 장바구니로 이동하시겠습니까?");
if(msg) { //msg == true 와 같은 뜻이다!!
location.href = "test3_cart.jsp";
}
}
'자바스프링웹공부(2024) > 자바스크립트' 카테고리의 다른 글
2024.08.14. JS - document 객체 : querySelector(), innerText, innerHTML (0) | 2024.08.19 |
---|---|
2024.08.13. JS - history, location, document 객체 - getElementByXX (0) | 2024.08.19 |
2024.08.08. 이벤트, 배열 (0) | 2024.08.08 |
2024.08.06.-08.07. JS - 함수 (0) | 2024.08.06 |
2024.07.31. 자바스크립트 - 반복문 (0) | 2024.07.31 |