yeony._.
πŸ’μ½©λΆ€πŸ’
yeony._.
전체 방문자
였늘
μ–΄μ œ
  • λΆ„λ₯˜ 전체보기 (99)
    • πŸ’»Programming (91)
      • β˜•οΈJava (19)
      • πŸ’½Oracle (21)
      • πŸ‘©‍🎨HTML&CSS (12)
      • 🎨 μ‹€μŠ΅ (4)
      • πŸƒ‍♀️JavaScript (25)
      • JSP (8)
      • πŸƒSpring (0)
      • πŸ₯§python (0)
      • API (0)
      • 😈Git (1)
    • 🀫Private (0)
      • -- (0)
      • + (0)
      • S (0)
      • P (0)
      • B (0)
    • 😎Project (4)
      • πŸ—“οΈwbs ν”„λ‘œμ νŠΈ (3)

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ
  • νƒœκ·Έ
  • λ°©λͺ…둝

곡지사항

인기 κΈ€

νƒœκ·Έ

  • HTML #CSS #HTML이미지 #HTML이미지에글씨 #HTML이미지에이미지

졜근 λŒ“κΈ€

졜근 κΈ€

ν‹°μŠ€ν† λ¦¬

hELLO Β· Designed By μ •μƒμš°.
yeony._.

πŸ’μ½©λΆ€πŸ’

[JavaScript] 03.객체 - 객체 생성/클래슀
πŸ’»Programming/πŸƒ‍♀️JavaScript

[JavaScript] 03.객체 - 객체 생성/클래슀

2022. 9. 22. 00:09

κ°μ²΄λž€?

μžλ°” μŠ€ν¬λ¦½νŠΈλŠ” λͺ¨λ“  것이 κ°μ²΄λΌλŠ” 말이 μžˆμ„ μ •λ„λ‘œ μžλ°” μŠ€ν¬λ¦½νŠΈμ—μ„œ κ°μ²΄λŠ” μ€‘μš”ν•œ κ°œλ…. 

μžλ°” μŠ€ν¬λ¦½νŠΈλŠ” 클래슀 기반이 μ•„λ‹Œ ν”„λ‘œν† νƒ€μž…(prototype)을 기반으둜 ν•˜λŠ” 객체 기반 μ–Έμ–΄

μ–Έμ œλ‚˜ 객체λ₯Ό μΆ”κ°€ν•˜κ±°λ‚˜ μ‚­μ œν•˜λŠ” 것이 κ°€λŠ₯ν•˜λ‹€. (μžλ°”μ—μ„œλŠ” λΆˆκ°€λŠ₯)

 

ν”„λ‘œν† νƒ€μž…(prototype)

μƒˆλ‘€μš΄ 객체의 초기 속성을 κ°€μ Έ μ˜€λŠ” ν…œν”Œλ¦ΏμœΌλ‘œ μ‚¬μš©λ˜λŠ” 객체 

객체 μ›ν˜•μΈ ν”„λ‘œν† νƒ€μž…μ„ μ΄μš©ν•˜μ—¬ μƒˆλ‘œμš΄ 객체λ₯Ό λ§Œλ“€λ©°, μƒμ„±λ˜λ‹ˆ κ°μ²΄λŠ” 또 λ‹€λ₯Έ 객체의 μ›ν˜•μ΄ 될 수 있음 

__proto__ : μƒμœ„μ—μ„œ λ¬Όλ € 받은 객체의 ν”„λ‘œν†  νƒ€μž…μ— λŒ€ν•œ 정보 

prototype : μžμ‹ μ˜ ν”„λ‘œν† νƒ€μž…μ˜ 객체, ν•˜μœ„λ‘€ 물렀쀄 ν”„λ‘œν† νƒ€μž…μ˜ 정보

 

μžλ°” μŠ€ν¬λ¦½νŠΈμ—μ„œ μ‚¬μš©ν•˜λŠ” 객체 

βœ” λ¬Έμ„œ 객체 λͺ¨λΈ(DOM)

μ›Ή λ¬Έμ„œμ™€ κ·Έ μ•ˆμ— μ‚½μž…λ˜μ–΄ μžˆλŠ” 이미지와 링크, ν…μŠ€νŠΈ ν•„λ“œ λ“±

일반적으둜 μ›Ή λ¬Έμ„œμ— μ‚½μž…ν•˜λŠ” μš”μ†ŒλŠ” document, image, link κ°μ²΄

 

βœ” λΈŒλΌμš°μ € κ΄€λ ¨ 객체

μ›Ή λΈŒλΌμš°μ €μ—μ„œ μ‚¬μš©ν•˜λŠ” 정보 

μ‚¬μš©ν•˜λŠ” λΈŒλΌμš°μ € 정보λ₯Ό λ‹΄κ³  μžˆλŠ” navigator 객체λ₯Ό λΉ„λ‘―ν•΄ history, location, screen 객체둜 λ“±

 

 

βœ” λ‚΄μž₯ 객체

μ›Ή ν”„λ‘œκ·Έλž˜λ°μ„ ν•  λ•Œ 자주 μ‚¬μš©ν•˜λŠ” μš”μ†Œλ‘œ μžλ°” 슀크립트 μ•ˆμ— 미리 객체둜 μ •μ˜λ˜μ–΄ 있음 

ex) λ‚ μ§œ, μ‹œκ°„κ³Ό κ΄€λ ¨λœ ν”„λ‘œκ·Έλž¨μ„ κ°œλ°œν•˜κΈ° μœ„ν•΄μ„œλŠ” Date 객체 이용

 

 

λ₯Ό μ‚¬μš©ν•  λ•ŒλŠ” 속성을 μ΄μš©ν•΄μ„œ 

μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” μ–Έμ œλ“ μ§€ 객체λ₯Ό μΆ”κ°€ν•˜κ±°λ‚˜ μ‚­μ œ κ°€λŠ₯ (μžλ°”λŠ” λΆˆκ°€λŠ₯)

클래슀 기반이 μ•„λ‹Œ, ν”„λ‘œν† νƒ€μž…(μžμ‹μ—κ²Œ 물렀쀄 데이터λ₯Ό κ°€μ§€κ³  μžˆλŠ” 곡간 - 상속) 기반

λ¦¬μ•‘νŠΈλŠ” 클래슀λ₯Ό 기반으둜 함 

 

ν”„λ‘œν† νƒ€μž…μ„ μ΄μš©ν•˜μ—¬ μƒˆλ‘œμš΄ 객체λ₯Ό λ§Œλ“€ 수 있음 (ν”„λ‘œν† νƒ€μž…μ€ 아버지가 될ㄹ 수 μžˆλ‹€)

 

ν”„λ‘œν† λŠ” 아버지가 κ°€μ§€κ³  있음

ν”„λ‘œν† νƒ€μž…μ€ λ‚΄κ°€ κ°€μ§€κ³  있음 

 

νŠΉμ§• 

λͺ¨λ“  κ°μ²΄λŠ” λ‹€λ₯Έ κ°μ²΄λ‘œλΆ€ν„° 상속

(μ΅œμƒμœ„ 객체 :Object - Objectλ₯Ό μ œμ™Έν•œ λͺ¨λ“  κ°μ²΄λŠ” Objectλ₯Ό μ•„λ²„μ§€λ‘œ)

 

객체 생성 방법

1), 2) 방법을 주둜 μ‚¬μš© 

1) 객체 μ΄λ‹ˆμ…œλΌμ΄μ €(object initializer) λ˜λŠ” 리터널

속성은 이름을 쀄 λ•Œ ''/ " μžˆμ–΄λ„ 되고 없어도 됨 

var obj = {
	name : '홍길동',
	age : 20
};

μ—¬λŸ¬ ν”„λ‘œνΌν‹°λ₯Ό κ°€μ§„ 객체λ₯Ό μ‰½κ²Œ μ •μ˜ν•  수 μžˆλŠ” ν‘œκΈ°λ²• 

{} μ•ˆμ— 'ν”„λ‘œνΌν‹° 이름: ν”„λ‘œνΌν‹° κ°’' ν˜•νƒœλ‘œ ν‘œκΈ° 

 

console.log(typeof obj); 
console.log(obj);
console.log(obj.name);

 

빈 객체둜 생성

var obj={ };

 

 

2) μƒμ„±μž ν•¨μˆ˜(constructor function)

μƒμ„±μž ν•¨μˆ˜λ₯Ό μ΄μš©ν•΄μ„œ 객체λ₯Ό λ§Œλ“€ 수 있음 

μƒμ„±μž ν•¨μˆ˜λŠ” 일반적으둜 λŒ€λ¬Έμžλ‘œ λ§Œλ“¦

μƒμ„±μž ν•¨μˆ˜μ— μžˆλŠ” ν”„λ‘œνΌν‹°λŠ” this μ‚¬μš©

function User(name, age){
	
	this.name = name; // 속성(ν”„λ‘œνΌν‹°)
	this.age = age;

	// λ©”μ†Œλ“œ 
	this.state = () => this.age >= 19? '성인':'μ΄ˆλ”©';
	
	this.msg = function(){
		console.log(this.name+ ":" + this.state());
	};
}

 

3) Object.create() λ©”μ†Œλ“œ

 

μœ„μ˜ λ°©λ²•μœΌλ‘œ μƒμ„±λ˜μ–΄ λ©”λͺ¨λ¦¬μ— λŒ€μž…λœ 객체λ₯Ό μΈμŠ€ν„΄μŠ€(instance) 라고 함 

 

 

ν΄λž˜μŠ€λž€?

객체λ₯Ό μƒμ„±ν•˜κΈ° μœ„ν•œ ν…œν”Œλ¦Ώ 

 

클래슀 생성

class User {	
	constructor({name, age}){ // μƒμ„±μž ν•¨μˆ˜
		this.name = name; // ν•„λ“œ
		this.age = age;
	}
		sayHello(){ // λ©”μ†Œλ“œ
			return 'μ•ˆλ…• λ‚΄ 이름은 ' + this.name +'μž…λ‹ˆλ‹€';
		}
}

 ν΄λž˜μŠ€ μ•ˆμ—μ„œμ˜ μƒμ„±μžλŠ” constructor λΌλŠ” μ΄λ¦„μœΌλ‘œ λ§Œλ“ λ‹€ 

 

 

 

 

 

 

'πŸ’»Programming > πŸƒβ€β™€οΈJavaScript' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[JavaScript] JSON  (0) 2022.09.22
[JavaScript] 04. λ‚΄μž₯객체 좔가해야됨..  (0) 2022.09.22
[JavaScript] μ˜ˆμ™Έμ²˜λ¦¬  (1) 2022.09.22
[JavaScript] ν•¨μˆ˜ ν˜Έμ΄μŠ€νŒ…  (0) 2022.09.21
[JavaScript] 02. κΈ°λ³Έ 문법 - ν•¨μˆ˜ : ν•¨μˆ˜μ„ μ–Έλ¬Έ/ν•¨μˆ˜ν‘œν˜„μ‹/κΈ°λͺ…ν•¨μˆ˜(읡λͺ…ν•¨μˆ˜)/μ¦‰μ‹œμ‹€ν–‰ν•¨μˆ˜/ν™”μ‚΄ν‘œ ν•¨μˆ˜  (0) 2022.09.21
    'πŸ’»Programming/πŸƒ‍♀️JavaScript' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • [JavaScript] JSON
    • [JavaScript] 04. λ‚΄μž₯객체 좔가해야됨..
    • [JavaScript] μ˜ˆμ™Έμ²˜λ¦¬
    • [JavaScript] ν•¨μˆ˜ ν˜Έμ΄μŠ€νŒ…
    yeony._.
    yeony._.
    힘 μ„Έμ§€λŠ” μ•Œμ•½πŸ’ŠπŸ’ŠπŸ’Š

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”