본문 바로가기

전체 글

console.log 메소드가 forEach 파라미터로 들어갈 때. [혼공자 5-2-4] 이 두가지가 같다는 것에 주목하자 1번. // 배열을 선언합니다. let numbers = [273, 52, 103, 32, 57] // 배열의 모든 값을 제곱합니다. numbers2 = numbers.map(function (value, index, array) { return value * value; }) console.log(numbers2) // 출력합니다. numbers2.forEach((value, index, array)=>{ console.log(value, index, array) }) 2번. // 배열을 선언합니다. let numbers = [273, 52, 103, 32, 57] // 배열의 모든 값을 제곱합니다. numbers2 = numbers.map(function (value.. 더보기
getter와 setter 간결하게 사용하기 [혼공자 9-2-10] getter와 setter를 메서드로 만들어 두면 그 메서드를 사용할 때 좀 불편하다. 속성값에 접근하려는데 함수처럼 생긴 메서드를 입력해야 하니 헷갈릴 수도 있다. 그런 분들을 위한 게 get 키워드, set 키워드 문법이다. 코드를 보자 class Square { #length constructor (length) { this.length = length } get length () { return this.#length } get perimeter () { return this.#length * 4 } get area () { return this.#length * this.#length } set length (length) { if (length 더보기
클래스 정의시 넣은 #length 같은 실수방지 코드의 단점과 그 해결책 일단 #length 같은 실수방지 코드가 뭐나면 아래와 같다. 속성명 앞에 #을 넣어 private 하게 만들어 준다. 이러면 class 정의영역 밖에서 메서드를 아무리 써도 #length 값을 읽을수도, 바꿀수도 없다. 보호되는 것이다. 이게 참 좋은 취지지만 속성을 건들지 못하니 개발자들이 불편하다. 이 단점의 해결책이 getter와 setter이다. class Square { #length constructor (length) { this.setLength(length) } setLength (value) { if (value 더보기
class 정의시 사용자 실수방지 코드를 넣었음에도 사용자가 메서드까지 써서 굳이 실수할 때는? [혼공자 9-2-7] 제목과 같은 경우도 있을 것이다. 아래 코드를 보자. // 정사각형 클래스 class Square { constructor (length) { if (length 더보기
class를 정의할때 사용자의 실수를 막는 장치를 넣어둘 수 있다. [혼공자 9-2-5] 자 일단 말로 풀어보자. 제목 그대로다. class를 정의할 때, 그 클래스의 사용자가 저지를 수 있는 실수를 미리 방지하는 코드를 넣을 수 있다. 그런 실수 중 하나가 길이 값을 클래스의 파라미터로 넣어야 하는데 음수를 넣는 경우다. 길이 값은 음수가 될 수 없다. 그럼에도 불구하고 누군가가 실수로 음수를 넣었을 때, 콘솔창에 오류가 뜨도록 할 수 있다. 코드를 보자. class Square { constructor (length) { if (length 더보기
class 에서 속성(키)과 메소드 상속받기 : extends 보호되어 있는 글입니다. 더보기
class로 객체와 그 객체에 대한 메소드 만들기 [혼공자9-1-8] class 하나를 만든다는 건 마치 객체를 만들어내는 틀을 만드는 것과 같다. 인스턴스는 클래스를 기반으로 생성한 객체를 의미한다. class 하나를 만들면 그 class를 통해 만들어낼 객체의 key-value 의 구성방식, 그 객체에 쓸수있는 메소드를 정의할 수 있다. 코드를 보자. class Student { constructor (이름, 국어, 영어, 수학, 과학) { //constructor 가 생성자. 구성물로 번역하면 될듯. this.이름 = 이름 this.국어 = 국어 this.영어 = 영어 this.수학 = 수학 this.과학 = 과학 } getSum () { return this.국어 + this.영어 + this.수학 + this.과학 } //메소드 만들기 getAverage () {.. 더보기
함수로 객체 찍어내기(판화 찍어내듯이) [혼공자 9-1-5] 함수로 객체를 찍어내고 고 객체들마다 메소드를 만들어 둘 수도 있다. 그러면 장점이 많다. 1) 객체들의 키와 값을 하나하나 입력할 때보다 코드를 더 적게 칠 수 있다. 파라미터만 입력하면 키와 값이 자동입력되니까. 2) 코드를 적게 치니 오탈자가 줄어든다. 3) 객체의 속성과 메소드를 한 함수 내에서 관리하므로 객체 관리(유지보수)가 쉬워진다. 무튼 그렇게 만든 코드를 보자. function createStudent(이름, 국어, 영어, 수학, 과학) { return { // 속성을 선언합니다. 값은 파라미터로 이미 입력되었음. 이름: 이름, 국어: 국어, 영어: 영어, 수학: 수학, 과학: 과학, // 메소드를 선언합니다. getSum () { return this.국어 + this.영어 + this.. 더보기