๐จ JavaScript
[mdn, ๋๋ฆผ์ฝ๋ฉ ์ธ] ๊ฐ์ฒด์งํฅ (4) : ํด๋์ค์ ์์ (sub classing)
ํด๋์ค์ ์์ (sub classing) class Goodcoder { constructor(age, lang, address) { this.age = age; this.lang = lang; this.address = address; } coding() { console.log(`๋ด๊ฐ ๊ณต๋ถ์ค์ธ ์ธ์ด๋ ${this.lang}์ ๋๋ค.`) } } ์ด ์๋์ ์๋ก์ด ํด๋์ค๋ฅผ ๋ง๋ค๊ณ ์ถ์๋ฐ, class Goodcoder์ ๊ฐ์ ์์์ํค๊ณ ์ถ๋ค๋ฉด extends๋ฅผ ๋ฃ์ด ๊ฐ๋จํ๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค. class Employee extends Goodcoder {} ์ด๋ ๊ฒ ์ ํด๋์ค๋ฅผ ๋ง๋ค์ด extends๋ก ์์์ ํ๋ฉด, ์๋ก์ด ํด๋์ค์ ์ด์ ํด๋์ค ๊ฐ๋ค์ด ์์๋๋ค. const noran = new Employee(20..
[mdn, ๋๋ฆผ์ฝ๋ฉ ์ธ] ๊ฐ์ฒด์งํฅ (3) : ์ ์ ์์ฑ๊ณผ ๋ฉ์๋(static properties and methods)
์ ์ ์์ฑ๊ณผ ๋ฉ์๋(static properties and methods) static ํค์๋๋ฅผ ๋ถ์ด๋ฉด ํ๋กํผํฐ๋ ๋ฉ์๋๊ฐ ์ธ์คํด์คํ๋์ง ์๊ณ ํด๋์ค ์์ฒด์ ๋ถ๋๋ค. class goodCoder { static codername = 'noran'; constructor(coderNumber) { this.coderNumber = coderNumber; } static printCoder() { console.log(goodCoder.codername); } } const coder1 = new goodCoder(1); const coder2 = new goodCoder(2); console.log(coder1.codername); //undefined ์ ์ฝ๋์์ console.log(coder1.cod..
[mdn, ๋๋ฆผ์ฝ๋ฉ ์ธ] ๊ฐ์ฒด์งํฅ (2) : ๊ฐ์ฒด(object)์ getter and setter
๊ฐ์ฒด(object) https://sunshineyellow.tistory.com/17 [์ฝ๋ฉ์๋ง ์ธ] ๊ฐ์ฒด(Object)์ ํ๋กํผํฐ(property) ๊ฐ์ฒด(Object) key์ value๋ก ์ด๋ฃจ์ด์ง ์ ์๋ค. 1. ํจ์ํํ์ const goodCoder = function(name, age, coding) { name : 'Noran', age : 20, coding : function(){ console.log('ํ์ดํ !'); } } name : 'Noran',.. sunshineyellow.tistory.com ์ ๊ธ์์ ์ ๊น ์ง๊ณ ๋์ด๊ฐ ๊ฐ์ฒด๋ฅผ ํด๋์ค์ ํจ๊ป ์ฌํํ์ตํ๋ค. class Goodcoder { //constructor constructor(name, age) { this.name = ..
[mdn, ๋๋ฆผ์ฝ๋ฉ ์ธ] ๊ฐ์ฒด์งํฅ (1) : ํด๋์ค(class)
๋ค์ด๊ฐ๊ธฐ ์์ : ์์ฑ์ํจ์์ ํด๋์ค์ ์ฐจ์ด์ https://sunshineyellow.tistory.com/18?category=1037372 [์ฝ๋ฉ์๋ง ์ธ] ๊ฐ์ฒด ๋ฆฌํฐ๋ด๊ณผ ๊ฐ์ฒด ์ ๊ทผ๋ฒ, ๊ทธ๋ฆฌ๊ณ ์์ฑ์ ํจ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์๋ ๋ ๊ฐ์ง๊ฐ ์๋ค. ๊ฐ์ฒด ๋ฆฌํฐ๋ด ์์ฑ์ ํจ์ ๋จ ํ๋์ ๊ฐ์ฒด๋ง์ ์์ฑํ ๋๋ ์ง๊ด์ ์ด๊ณ ๊ฐํธํ ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ ์ฌ์ฉํ๊ณ , ๊ฐ์ ๊ฐ์ฒด๋ฅผ ๋๋์์ฐํ ๋๋ ์์ฑ์ํจ์๋ฅผ sunshineyellow.tistory.com ์ ๊ธ์์ ๊ฐ์ฒด์ ์์ฑ์ํจ์๋ฅผ ๊ฐ๋จํ๊ฒ ๊ณต๋ถํ๋ค. ๊ทธ๋ ๋ค๋ฉด ์์ฑ์ํจ์์ ๋ค๋ฅธ ํด๋์ค์ ํน์ด์ ์ ๋ฌด์์ผ๊น? ํด๋์ค๋ new ์ฐ์ฐ์ ์์ด๋ ํธ์ถ์ด ๋ถ๊ฐ๋ฅํ๋ค. ํด๋์ค๋ extends(ํด๋์ค์ ์์)์ super(superํด๋์ค์ constructor๊ณผ method ํธ์ถ)๋ฅผ ..
[๋๋ฆผ์ฝ๋ฉ] IIFE (์ฆ์ ํธ์ถ๋๋ ํจ์ ๋ง๋ค๊ธฐ)
function sayHello(){ console.log('Hello'); } sayHello(); ์ฆ์ ํธ์ถ๋์ด์ผ ํ๋ ํจ์๋ฅผ ๋ง๋ค ๊ฒฝ์ฐ ์๋์ฒ๋ผ ํ๋ฒ ๋ ํธ์ถํด์ค์ผ ํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์๋ค. ์ด๋ฅผ IIFE (Immediately Invoked Function Expression)์ ํตํด ๋ ์ฝ๊ฒ ํธ์ถํ ์ ์๋ค. (function sayHello(){ console.log('Hello'); })(); ํจ์๋ฅผ ()๊ดํธ๋ก ๊ฐ์ธ๊ณ ();๋ฅผ ๋ถ์ด๋ฉด ๋๋ค.
[๋๋ฆผ์ฝ๋ฉ] ๋๋ฒ๊น ํ - named function, recursions
* named function์ class์ object์ ๊ดํ ๊ฐ๋ ์ ๋ฆฌ ๊ฒ์๊ธ์์ ํ๋ฒ ๋ ์ธ๊ธํ๋ค. const printGood = function () { console.log('Good'); } ์ผ๋ฐ์ ์ธ ์ด๋ฐ ํจ์์ ์ธ๋ฌธ์์, function ์์ ์ด๋ฆ์ ๋ถ์ฌ์ฃผ์ด (named function) ๋๋ฒ๊น ํ ๋ ํจ์ ์ด๋ฆ์ด ๋์์ ๋๋ฒ๊น ์ ๋ ์์ฝ๊ฒ ํ ์ ์๋ค. const printGood = function print() { console.log('Good'); } ํจ์ ์์์ ํจ์๋ฅผ ๋ถ๋ฅด๋ recursions๋ ๋๋ฒ๊น ์ ํ์ฉํ ์ ์๋ค. (๋ฐ๋ณต๋๋ ํ๊ท ๊ฐ์ ๊ณ์ฐํ๋ ๋ฑ์ ๊ฒฝ์ฐ์ ์ฌ์ฉ) const printGood = function print() { console.log('Good'); print..