분류 전체보기
-
-
-
-
-
모던 자바스크립트 Deep Dive - 프로토타입JavaScript 2021. 9. 16. 19:03
자바스크립트는 객체지향 프로그래밍 언어의 특징인 클래스와 상속 , 캡슐화를 위한 키워드인 public , private , protected 등이 없어서 자바스크립트는 객체지향 언어가 아니라고 오해를 하는 경우가 있다. 하지만, 자바스크립트는 프로토타입 기반의 객체지향 프로그래밍 언어이기때문에 효율적이며 더 강력한 객체지향 프로그래밍 능력을 지니고 있다. 상속이란, 객체지향 프로그래밍의 핵심 개념으로 , 어떤 객체의 프로퍼티 또는 메서드를 다른 객체가 상속받아 그대로 사용할 수 있는 것을 말한다. 상속을 통해 불필요한 중복을 제거한다. function Circle(radius){ this.radius = radius; this.getArea = function(){ return Math.PI * this..
-
모던 자바스크립트 Deep Dive - 함수와 일급 객체JavaScript 2021. 9. 16. 19:03
일급 객체 무명의 리터럴로 생성할 수 있다. 변수나 자료구조에 저장할 수 있다. 함수의 매개변수에 전달할 수 있다. 함수의 반환값으로 사용할 수 있다. // 1. 무명의 리터럴로 생성할 수 있다. // 2. 변수에 저장할 수 있다. const increase = function(num){ return num ++ ; } // 2. 객체에 저장할 수 있다. const predicates = { increase } ; // 3. 함수의 매개변수로 전달할 수 있다. // 4. 함수의 return 값으로 사용할 수 있다. function makeCounter(predicate){ let num = 0; return function(){ num = predicate(num); return num; }; }
-
모던 자바스크립트 Deep Dive - 생성자 함수에 의한 객체 생성JavaScript 2021. 9. 16. 19:02
keyword = [ 생성자 함수 , 일반 함수 , 내부 메서드 , Call , Construct , new.target ] Object 생성자 함수 new 연산자와 함께 Object 생성자 함수를 호출하면 빈 객체를 생성하여 반환한다. const person = new Object(); console.log(person); // { } person.name = 'Kim'; person.sayHello = function(){ console.log('Hi ! My name is ' + this.name); }; console.log(person); // { name : 'Kim' , sayHello : f } person.sayHello(); // Hi! My name is Kim 생성자 함수 : new..
-
모던 자바스크립트 Deep Dive - 프로퍼티 어트리뷰트JavaScript 2021. 9. 16. 19:02
keyword = [ 내부 슬롯 , 내부 메서드 , 데이터 프로퍼티 , 접근자 프로퍼티 ] 내부 슬롯과 내부 메서드는 ECMAScript 사양에서 사용하는 의사 프로퍼티와 의사 메서드 이다. 내부 슬롯과 내부 메서드는 자바스크립트 엔진에서 실제로 동작하지만 개발자가 직접 접근할 수 있도록 외부로 공개된 객체의 프로퍼티는 아니다. 따라서, 자바스크립트 엔진의 내부 로직이므로 직접 접근할 수 없다. 하지만, 일부 내부 슬롯과 내부 메서드는 접근 수단을 제공 한다. 예를 들어, 모든 객체는 [[prototype]]이라는 내부 슬롯을 갖는다. 하지만 접근 할 수 없으며, __proto__로 접근할 수 있다. const o = {}; o.[[prototype]] // Syntax Error o.__proto__ ..