Tiny Star
[JavaScript] 프로토타입 교체와 instanceof
·
📚STUDY/JavaScript
프로토타입의 교체부모 객체인 프로토타입은 동적으로 변경할 수 있어, 객체 간의 상속 관계를 동적으로 변경할 수 있다. 프로토타입은 생성자 함수 또는 인스턴스에 의해 교체가 가능하다.생성자 함수에 의한 프로토타입의 교체const Person = (function () { function Person(name) { this.name = name; } // ① 생성자 함수의 prototype 프로퍼티를 통해 프로토타입 교체 Person.prototype = { sayHello() { console.log(`Hi! My name is ${this.name}`); } }; return Person;}());const me = new Person('Jung');①에서 Pe..
[JavaScript] 프로토타입 체인과 상속
·
📚STUDY/JavaScript
프로토타입 체인function Person(name) { this.name = name;}Person.prototype.sayHello = function () { console.log(`Hi! My name is ${this.name}`);};const me = new Person('Jung');console.log(me.hasOwnProperty('name')); // true사용자 정의 생성자 함수인 Person과 더불어 생성된 프로토타입 Person.prototype의 프로퍼티에는 constructor 뿐이다. 그러나 위 예제에서 Person 생성자 함수에 의해 생성된 me 객체는 Object.prototype의 메서드인 hasOwnProperty를 호출할 수 있다. 이것은 me 객체가 Per..
[JavaScript] 프로토타입과 객체 생성의 관계
·
📚STUDY/JavaScript
리터럴 표기법에 의해 생성된 객체의 생성자 함수와 프로토타입생성자 함수에 의해 생성된 인스턴스는 프로토타입의 constructor 프로퍼티에 의해 생성자 함수와 연결된다. constructor 프로퍼티가 가리키는 생성자 함수는 인스턴스를 생성한 생성자 함수다.const obj = new Object();console.log(obj.constructor === Object); // trueconst add = new Function('a', 'b', 'return a + b');console.log(add.constructor === Function); // trueconst Person(name) { this.name = name;}const me = new Person("Jung");console.l..
[JavaScript] 프로토타입과 객체, 상속
·
📚STUDY/JavaScript
객체 지향 프로그래밍자바스크립트는 함수형, 명령형, 프로토타입 기반의 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어다. 그 중 객체지향 프로그래밍(OOP, Object Oriented Programming)은 프로그램을 명령어 또는 함수의 목록으로 보는 전통적인 명령형 프로그래밍의 절차지향적 관점에서 벗어나 여러 개의 독립적 단위인 객체의 집합으로 프로그램을 표현하려는 프로그래밍 패러다임이다. 객체지향 프로그래밍에서는, 현실 세계에 존재하는 실체를 그것의 특징, 성질과 같은 속성(property)으로 인식하는 것과 마찬가지로 여러 가지의 속성을 통해 하나의 객체를 다른 것과 구별할 수 있다. 즉, 객체란 속성을 통해 여러 개의 값을 하나의 단위로 구성한 복합적인 자료구조다. 사람에게는 이름..