๐ฒ ๋ชฉํ: ์๋ฐ์คํฌ๋ฆฝํธ ์๋ฐ ๊ฒํฅ๊ธฐ ๐
์๋ฐ์คํฌ๋ฆฝํธ๋ ์์ ์ฒ์์ด์ง๋ง ์๋ฐ๋ฅผ ์ฐ๋ ๊ณต๋ถํ ์ ์์ด์ ๊ธฐ๋ณธ์ ์ธ ๋ฌธ๋ฒ(์ฐ์ฐ์, ์กฐ๊ฑด๋ฌธ ๋ฑ..)์ ์ด๋์ ๋ ์ดํดํ ์ ์์๋ค. ๋์ ์๋กญ๊ฒ ์๊ฒ๋+์ค์ํ ์ง์๋ค ์ ๋ฆฌ!
โถ ๋ชฉ์ฐจ
๐ ์๋ฐ์คํฌ๋ฆฝํธ ์ ์ธ ๋ฐฉ์
๐ ๊ฐ์ฒด(Object)๋?
๐ DOM(Document Object Model)
- html ํ๊ทธ ๋ด์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์ง์ ๊ธฐ์
<input type="button" onclick="alert('Hello world')" value="Hello world" />
<script>
ํ๊ทธ๋ฅผ ์ด์ฉ
- html ๋ฌธ์ ๋ด์
<script>
ํ๊ทธ๋ฅผ ์ฌ์ฉํด ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์ฝ์<html> <body> <input type="button" id="hw" value="Hello world" /> <script> var hw = document.getElementById('hw'); hw.addEventListener('click', function(){ alert('Hello world'); }) </script> </body> </html>
- script src๋ฅผ ์ด์ฉํด ๋ถ๋ฆฌ๋ jsํ์ผ์ ์ฐ๊ฒฐ
<script type="text/javascript" src="script2.js"></script>
*2, 3๋ฒ ๋ชจ๋ head์ body ๋ ํ๊ทธ ๋ด์ ๋ชจ๋ ์ฌ์ฉ ๊ฐ๋ฅํ์ง๋ง body ๋ด์ ๋ฃ๋ ๊ฒ ์ข๋ค! head์ ์์น์ํฌ ๊ฒฝ์ฐ body์ ๋ด์ฉ์ด ์ฝํ ํ์ ์คํฌ๋ฆฝํธ๊ฐ ์คํ๋์ด์ผ ํ๋ฏ๋ก window.onload = function(){} ํจ์๋ฅผ ๋ณ๋๋ก ์ถ๊ฐํด์ค์ผ ํจ
1. 'Object'๋ผ๋ ์ด๋ฆ์ ์ง๋ ๊ฐ์ฒด
๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๊ฐ์ฒด ํํ๋ก์ ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฅผ ๋ด์๋ด๋ ์ปจํ ์ด๋๋ผ๊ณ ํ ์ ์์
Array์์ ์ฐจ์ด๋ Object์ ๊ฒฝ์ฐ index๋ก ๋ฌธ์์ด์ ๋ฐ๋๋ค๋ ๊ฒ.
ํ์ด์ฌ์ผ๋ก ๋น๊ตํ์๋ฉด Array๋ list, Object๋ dictionary์ ์ ์ฌํจ!
๊ฐ์ฒด ์์ฑ ๋ฐฉ๋ฒ
var dog = {name: "mongsil", gender: "female", breed: "maltese"}; ๋๋ var dog = {}; dog[name] = "mongsil"; dog[gender] = "female"; dog[breed] = "maltese";
2. Prototype ๊ฐ์ฒด
์๋ก ์ฐ๊ด๋ ๋ณ์์ ํจ์๋ฅผ ๊ทธ๋ฃนํํ ์ปจํ ์ด๋๋ผ๊ณ ํ ์ ์๋ค. ๊ฐ์ฒด ๋ด ๋ณ์๋ฅผ property, ํจ์๋ฅผ method๋ผ๊ณ ํจ!
- constructor function์ ํตํ object type ์์ฑ
//constructor function function dog(name, gender, breed) { this.name = name; this.gender = gender; this.breed = breed; } //create an object var mydog = new dog("mongsil", "female", "maltese");
- object type์ method ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ
- constructor ๋ด๋ถ์
function objName(a, b) { this.a = a; this.b = b; this.ํจ์์ด๋ฆ = function() { } }
- property์ ์ฐ๊ฒฐ์์ผ์ ์ธ๋ถ์
function objName(a, b) { this.a = a; this.b = b; this.ํจ์์ด๋ฆ = ์์ฑ์ด๋ฆ; } function ์์ฑ์ด๋ฆ() { }
โถ ์ ์ฒด์ ์ผ๋ก Java์ Class์ ๋น์ทํ ๊ฐ๋ ์ธ ๊ฒ ๊ฐ์..!
์๋ฐ์คํฌ๋ฆฝํธ๋ก ์น๋ธ๋ผ์ฐ์ ๋ฅผ ์ ์ดํ๊ธฐ ์ํด์๋ ์ ์ดํ ๋์์ด ํ์ํ๋ค. ๋ธ๋ผ์ฐ์ ์์๋ฅผ ๊ฐ์ฒดํํ์ฌ ์ ์ดํ๋ ๊ฒ์ด ์ค๋ธ์ ํธ ๋ชจ๋ธ!
๐ HTML ๋ด๋ถ ์์ ์ ํํ๊ธฐ
CSS์ selector์ ๊ฐ์ ์ญํ ! ํ์ง๋ง ์ซ ๋ ๋ณต์ก ๐
- document.getElementsByTagName("")
- document.getElementsByClassName("")
- document.getElementById("") โป's' ์์ ์ฃผ์!
๋ฐ์ดํ ์์ ๊ฐ๊ฐ ํ๊ทธ๋ช , ํด๋์ค๋ช , ์์ด๋๋ฅผ ๋ฃ์ด ํด๋น๋๋ element๋ค์ Nodelist(=์ ์ฌ๋ฐฐ์ด)๋ก ๋ฐํํด ์ค๋ค. ํน์ ์์๋ง ์ ํํ๊ณ ์ถ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ธ๋ฑ์ฑํด์ ์ฌ์ฉ ๊ฐ๋ฅ!
var x = document.getElementByTagName("h1"); x[0] //"h1" ํ๊ทธ ์ค ์ฒซ ๋ฒ์งธ ์์
- document.querySelector("")
๋ฐ์ดํ ์์ css selector ๋ฌธ๋ฒ์ ๋ฃ์ด์ ๊ฐ์ฒด๋ฅผ ์ ํํ๋ ๋ฐฉ๋ฒ. ์ ํ์์ ํด๋นํ๋ ์ฒซ ๋ฒ์งธ ์์ ํ๋๋ง ๋ฐํ.- document.querySelectorAll("")
์ ํ์์ ํด๋นํ๋ ๋ชจ๋ ์์๋ฅผ Nodelist๋ก ๋ฐํ.
๐ HTML ํ๊ทธ ์์ ์ถ๊ฐ ๋ฐ ์ญ์
์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ๋ฉด ์ด๋ฏธ ์ถ๋ ฅ๋ html ๋ฌธ์์ ์์, text, ์์ฑ์ ๋์ ์ผ๋ก ์ถ๊ฐํ๊ณ ์ญ์ ํ ์ ์๋ค!
- document.createElement("ํ๊ทธ๋ช "): ์์ ์ถ๊ฐํ๊ธฐ
var newDiv = document.createElement("div"); var par = document.getElementById("box"); //๋ถ๋ชจ์์ ์ ํ par.appendChild(newDiv) //๋ง์ง๋ง ์์์ผ๋ก ์ฝ์ par.appendCHild(newDiv, [๊ธฐ์ค์์]) //[๊ธฐ์ค ์์ ์์ ์ฝ์ ]
- .innerHTML = "": ํ๊ทธ ๋ด์ TEXT ์ถ๊ฐํ๊ธฐ
var a = document.querySelector("h1"); //text๋ฅผ ์ฝ์ ํ ํ๊ทธ ์ ํ a.innerHTML = "Hello!";
- .setAttribute("[attribute]", "[argument]"): ํ๊ทธ ์์ฑ ์ถ๊ฐํ๊ธฐ
var a = document.querySelector("h1"); //์์ฑ ์ถ๊ฐํ ํ๊ทธ ์ ํ a.setAttribute("id", "title");
- .style.[property]="[value]": ํ๊ทธ ์คํ์ผ ์ถ๊ฐํ๊ธฐ
var a = document.querySelector("h1"); //์คํ์ผ ์ถ๊ฐํ ํ๊ทธ ์ ํ a.style.backgroundColor="lightskyblue";
ํ๋ค๋ค........ ๊ทธ์น๋ง ๋ฟ๋ฏ ๐
JavaScript : ํ๋กํ ํ์
(prototype) ์ดํด
์น๋ธ๋ผ์ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ - ์ํ์ฝ๋ฉ
์ฝ๋ฉ๋ง์ง :: [JS] ์๋ฐ์คํฌ๋ฆฝํธ HTML ํ๊ทธ ์์ ๋์ ์ถ๊ฐ ๋ฐ ์ญ์
๋์๋ ์ ๋ฆฌ ์ต๊ณ ...๐๐ป