본문 바로가기

Javascript36

[생활코딩] 객체지향 - 메소드 구현 / 상속 전통적인 방법에서는 생성자 함수에서의 prototype 객체에 sum이라는 프로퍼티를 함수로 지정하는것을 통해서 Person이라는 생성자로 만들어진 모든 객체가 공유할수있는 함수를 만들수있었다. 우리가 class에서는 어떻게할까? 첫 번째는 저 방법은 그대로 사용하는것이다.(class는 이미 있는것에서 문법만 좀 추가된것이므로) 두 번째 저렇게 안에 넣어서 사용가능하다. (clasas는 function을 안붙인다.) kim이라고 하는 객체만은 다르게 동작하는 함수를 정의하고 싶다면 전에 사용했던 같은 방법으로 정의하면 된다. 자바스크립트는 우선 kim이라는 객체가 sum이라는 함수를 가지고 있는지를 확인해보고, 없다면 kim이라는 객체의 person이라는 객체에 sum이라는 메소드가 정의되었는지 보고 있.. 2020. 7. 31.
[생활코딩] 객체지향 - Classes 객체를 찍어내는 공장 constructor의 대체제 class를 살펴보겠다. class는 ES6 문법인데, 통계를 기반으로 해당 문법이 어느 환경에서 가능한지 아래 사이트에서 확인 가능하다. https://caniuse.com/ IE 에서는 사용이 안된다고 나오는데, https://babeljs.io/ 최신 문법의 코드를 과거의 코드로 변환해주는 사이트가 있다. Compiler , Transpiler 라고 부른다. function Person만 놓고 본다면 그냥 함수이지만 저 함수가 사용될 때 new를 붙이게 되면 객체를 return하게 된다. 객체가 return되기전에 this.name = name; 같은 코드로 인해서 그 객체의 속성이 기본적으로 셋팅이 된 객체가 return 되는거다. new가 붙게.. 2020. 7. 31.
[생활코딩] 객체지향 - prototype 한글로는 prototype을 어떤 사물의 공통된 모습, 본래의 모습을 의미한다. 자바스크립트를 프로토타입 기반 언어라고 부를만큼 자바스크립트의 기반이다. function Person(name, first, second){ this.name = name; this.first = first; this.second = second; this.sum = ()=> this.first + this.second; } var kim = new Person('kim',10 ,20); var lee = new Person('kim',30 ,20); console.log("kim.sum()", kim.sum()); console.log("lee.sum()", lee.sum()); kim을 만들때 Person을 생성자로 동작.. 2020. 7. 31.
[생활코딩] Javascript - 객체 만들기 / this / constructor 객체를 포함해서 함수를 표현할때는 함수라는 말 대신에 메소드라는 말을 많이 쓴다. (객체에 소속되어 있을 때) 객체라고 하는것은 서로 연관된 변수와 함수들을 그룹핑해서 이름을 붙인것이다. 객체를 안쓰면 MyMath_PI = Math.PI 이렇게 이름 앞에 접두사를 붙이는 것을 통해서 이름이 충돌하는 것을 방지한다. 파일이 1억개라고 가정했을 때 디렉토리를 만들면 연관되어 있는 것들을 모아서 깔끔하게 정리하듯 객체도 저렇게 수학과 관련된 변수와 함수를 그룹핑함으로써 깔끔하게 정리하는것이다. 인간에게도 각자 이름이 있다. 그리고 이름을 대신하는 자기 자신을 가리키는 대명사라는 것이 있다. 프로그래밍에서도 자기 자신을 가리키는 표현이 있는데, 그게 this이다. 어떤 사람이 게임을 두 판 했는데 첫 게임 10.. 2020. 7. 30.