Prototype 프로토타입과 프로토타입 상속 예를 들어 user라는 객체가 있는데 이 user와 굉장히 유사하지만 약간의 차이가 있는 객체를 만들어야 된다고 생각해보면 어떤 방식이 가장 효율적일까? 자바스크립트의 객체는 [[prototype]]이라는 숨김 프로퍼티를 갖는다 이 값은 null이거나 다른 객체에 대한 참조가 되는데 다른 객체를 잠초하는 경우 참조대상을 '프로토타입(prototype)'이라 부른다 [[prototype]]은 ... proto상속Prototypeinheritance프로토타입InheritInherit Prototype - 1. Prototype 디자인 이론 클래스 문법이 생기고 (적어도 내가 아는)많은 개발자들이 프로토타입보다는 클래스로 객체 지향 프로그래밍을 하고 있지만, 이 프로토타입이라는 것에 대해 조금은 알 필요가 있다. 왜냐하면 자바스크립트의 클래스는 프로토타입으로 구현되어 있고 프로토타입을 어느 정도 알고 있어야, 자바스크립트의 난해했던 부분들(호이스팅, this ...)을 암기가 아닌 이해로 받아들일 수 있기 때문이다. 어휘(lex... thishoistingPrototypeJavaScriptclosurescopeobjectobject orientedlexicalcontextclassJavaScript 자바스크립트에서 __proto__ VS. prototype 비교 __proto__는 메서드 등을 체인을 타고 찾는데 사용되는 실제 객체이다. prototype은 new로 인스턴스를 만들 때 __proto__를 생성하는 데 사용하는 객체다. 함수 정의 코드를 실행하면, 자바스크립트는 해당 함수에 prototype 프로퍼티를 추가한다. 해당 prototype 프로퍼티는 constructor와 __proto__라는 두 개의 프로퍼티를 가진 객체다. - 브라우저... protoPrototypePrototype 🏗️ 자바스크립트의 Prototype 자바스크립트는 명령형(imperative), 함수형(functional), 프로토타입 기반(prototype-based) 객체지향 프로그래밍(OOP, Object Oriented Programming)을 지원하는 멀티 패러다임 프로그래밍 언어다. 상속(inheritance)은 어떤 객체의 프로퍼티, 메서드를 다른 객체가 상속받아 그대로 사용할 수 있는 것이다. Circle 생성자 함수가 생성... JavaScriptPrototypeJavaScript 프로토타입(Prototype) 톺아보기 자바스크립트에는 Prototype Link 와 Prototype Object라는 것이 존재한다. 프로토타입 객체(Prototype Object) 해당 함수의 Prototype Object 생성 및 연결 함수를 정의하면 함수만 생성되는 것이 아니라 Prototype Object도 같이 생성이 된다. 함수는 prototype이라는 속성을 통해 Prototype Object에 접근할 수 있다. P... CSJavaScriptPrototypeCS Prototype 정리 사용자의 정보를 담는 user 라는 변수를 선언하고 name과 age의 속성 값을 담고 있는 객체를 아래와 같이 할당했다고 친다. 그런데 어느 순간 user 라고 하는 사용자에 대한 정보가 담긴 변수를 사용하다가 아래 코드와 같이 해당 속성 값들을 담고 있는 객체에 다른 추가 정보를 넣을 일이 생기게 되고 새로운 변수에 담을 일이 생길 수 있다. 이렇게 되면 name: "Sue", age: ... JavaScriptPrototypeJavaScript TIL_20210328 for...in 반복문은 객체 자체에서 정의한 프로퍼티뿐만 아니라 상속 프로퍼티도 순회 대상에 포함. 반면, 키-값과 관련된 내장 메서드 대부분은 상속 프로퍼티는 제외하고 객체 자체 프로퍼티만을 대상으로 동작 rabbit은 animal을, animal은 Object.prototype을, Object.prototype은 null을 상속 animal이 Object.prototype를 상속받는 이... Prototype상속obj.hasOwnProperty(key)object.keys프로토타입Prototype TIL 25 | JavaScript 객체 지향 프로그래밍 02 👏🏻 그렇기 때문에 이런 형식의 객체를 찍어내는 공장(constructor)을 만들거고, 이제 그 공장을 이용해서 객체를 양산해보자!! 그리고 이 Date 를 이용할때에는 new 라는 키워드를 붙여주고 하지만 그럼에도 우린 d1 이라는 객체를 사용할 수 있다. 그런데 앞에 new 라는 키워드를 붙이면 이제 이 함수는 더이상 일반적인 함수가 아니라!! → kim2에 있는 new Person이나... JavaScriptPrototypeObject Oriented ProgrammingJavaScript [자바스크립트] 객체의 속성 및 메서드 활용 기본 자료형 자바스크립트에서는 실체가 있는 것 undefined, null이 아닌 것 중에 객체가 아닌 것을 기본 자료형 이라고 한다 객체가 아니기 때문에 속성을 가질 수 없다 단순 기본 자료형이 아니기 때문에 속성을 가질 수 있다 속성과 메서드를 활용할 수도 있다 원래 기본 자료형은 속성과 메서드를 가질 수 없는데 문자열의 length 속성의 경우는 ?? 자바스크립트는 사용의 편리성을 위해... numberPrototypeJSON.parseisFinitetofixedisNaNJSON.stringfy()Math 객체split()자바스크립트JSON 객체Math.random기본 자료형객체 자료형JSON 객체 Prototype in JS javascript는 prototype-based language라고 한다. (모든 객체들이 메소드와 속성들을 상속 받기 위한 템플릿으로써 prototype object를 가진다는 의미) prototype object는 상위 prototype object로 부터 속성과 매서드를 상속 받을 수 있고 상위 prototype object도 마찬가지로 상속받을 수 있다. 이를 prototype ch... JavaScriptPrototypeJavaScript 자바스크립트 prototype에 대하여 ECMAScript 2015부터 [[Prototype]]에 조상 Object.getPrototypeOf()과 Object.setPrototypeOf()을 이용하여 접근하기 때문이다. 이것은 자바스크립트의 표준은 아니나 많은 브라우저에 구현되어 사실상의 표준이 된 속성 __proto__과 동일하다. 라고 되어있고 이는 표준에서는 [[Prototype]]이라 쓰지만 브라우저상에서는 __proto... Prototypejs prototypePrototype 클래스와 프로토타입 & 프로토타입 체인 모델의 청사진을 만들 때 쓰는 원형객체(original form)입니다. 함수는 객체다. 그러므로 생성자 함수도 객체(프로퍼티를 가질수 있다)다. prototype이라는 프로퍼티는 그 용도가 약속되어 있는 특수한 프로퍼티다. 클래스 생성시 prototype 생성 인스턴스 제작시 steve.proto; 생김 프로토타입이 상위 프로토타입까지 연결되는 구조를 말합니다. 즉, 하위 프로토타입은 상위... PrototypeclassPrototype [CS] prototype Day-23 객체 지향 프로그래밍의 등장 이전.. 절차적 언어에는 객체 지향의 개념이 없는 언어였습니다. 객체 지향 언어 현대의 언어들은 대부분 객체 지향 특징을 가지고 있습니다. 객체를 만들고 나며, 메모리상에서 반환되기 전가지 객체 내의 모든 것이 유지됩니다. 객체 내에서 원칙에 따라 메소드와 속성이 존재합니다. 새로운 객체를 만들 때, 속성에 고유한 값을 부여할 수 있습니다. 객체 지향 프로그래밍의... OOPencapsulationPrototypeprototype chain상속inheritance객체 지향 언어abstractionPolymorphism다형성instanceclass캡슐화추상화절차적 언어OOP JavaScript 15 프로토타입(Prototype) 여기서 Champ의 prototype에 {eSkill : '쿵'} 프로퍼티를 추가함 1️⃣ console.log(Malphite.eSkill); 근데 위에서 Malphite 객체에 따로 {eSkill : '쿵'}이라는 속성을 추가한 적이 없는데 이게 찍히는 이유는? 👉🏼 부모역할을 하는 Champ의 prototype(=유전자)에 속성을 추가했기 때문! 이렇게 되면 자식인 Malphite는 따... TILJavaScriptPrototypeJavaScript TIL_20210327 자바스크립트의 객체는 명세서에서 명명한 [[Prototype]]이라는 숨김 프로퍼티가 존재. 이 숨김 프로퍼티 값은 null이거나 다른 객체에 대한 참조가되는데, 다른 객체를 참조하는 경우 참조 대상을 '프로토타입(prototype)'이라 함 oject에서 프로퍼티를 읽으려고 하는데 해당 프로퍼티가 없으면 자바스크립트는 자동으로 프로토타입에서 프로퍼티를 탐색. 이러한 동작 방식을 '프로토타입... Prototype상속accessor property접근자 프로퍼티프로토타입 체이닝프로토타입Prototype
프로토타입과 프로토타입 상속 예를 들어 user라는 객체가 있는데 이 user와 굉장히 유사하지만 약간의 차이가 있는 객체를 만들어야 된다고 생각해보면 어떤 방식이 가장 효율적일까? 자바스크립트의 객체는 [[prototype]]이라는 숨김 프로퍼티를 갖는다 이 값은 null이거나 다른 객체에 대한 참조가 되는데 다른 객체를 잠초하는 경우 참조대상을 '프로토타입(prototype)'이라 부른다 [[prototype]]은 ... proto상속Prototypeinheritance프로토타입InheritInherit Prototype - 1. Prototype 디자인 이론 클래스 문법이 생기고 (적어도 내가 아는)많은 개발자들이 프로토타입보다는 클래스로 객체 지향 프로그래밍을 하고 있지만, 이 프로토타입이라는 것에 대해 조금은 알 필요가 있다. 왜냐하면 자바스크립트의 클래스는 프로토타입으로 구현되어 있고 프로토타입을 어느 정도 알고 있어야, 자바스크립트의 난해했던 부분들(호이스팅, this ...)을 암기가 아닌 이해로 받아들일 수 있기 때문이다. 어휘(lex... thishoistingPrototypeJavaScriptclosurescopeobjectobject orientedlexicalcontextclassJavaScript 자바스크립트에서 __proto__ VS. prototype 비교 __proto__는 메서드 등을 체인을 타고 찾는데 사용되는 실제 객체이다. prototype은 new로 인스턴스를 만들 때 __proto__를 생성하는 데 사용하는 객체다. 함수 정의 코드를 실행하면, 자바스크립트는 해당 함수에 prototype 프로퍼티를 추가한다. 해당 prototype 프로퍼티는 constructor와 __proto__라는 두 개의 프로퍼티를 가진 객체다. - 브라우저... protoPrototypePrototype 🏗️ 자바스크립트의 Prototype 자바스크립트는 명령형(imperative), 함수형(functional), 프로토타입 기반(prototype-based) 객체지향 프로그래밍(OOP, Object Oriented Programming)을 지원하는 멀티 패러다임 프로그래밍 언어다. 상속(inheritance)은 어떤 객체의 프로퍼티, 메서드를 다른 객체가 상속받아 그대로 사용할 수 있는 것이다. Circle 생성자 함수가 생성... JavaScriptPrototypeJavaScript 프로토타입(Prototype) 톺아보기 자바스크립트에는 Prototype Link 와 Prototype Object라는 것이 존재한다. 프로토타입 객체(Prototype Object) 해당 함수의 Prototype Object 생성 및 연결 함수를 정의하면 함수만 생성되는 것이 아니라 Prototype Object도 같이 생성이 된다. 함수는 prototype이라는 속성을 통해 Prototype Object에 접근할 수 있다. P... CSJavaScriptPrototypeCS Prototype 정리 사용자의 정보를 담는 user 라는 변수를 선언하고 name과 age의 속성 값을 담고 있는 객체를 아래와 같이 할당했다고 친다. 그런데 어느 순간 user 라고 하는 사용자에 대한 정보가 담긴 변수를 사용하다가 아래 코드와 같이 해당 속성 값들을 담고 있는 객체에 다른 추가 정보를 넣을 일이 생기게 되고 새로운 변수에 담을 일이 생길 수 있다. 이렇게 되면 name: "Sue", age: ... JavaScriptPrototypeJavaScript TIL_20210328 for...in 반복문은 객체 자체에서 정의한 프로퍼티뿐만 아니라 상속 프로퍼티도 순회 대상에 포함. 반면, 키-값과 관련된 내장 메서드 대부분은 상속 프로퍼티는 제외하고 객체 자체 프로퍼티만을 대상으로 동작 rabbit은 animal을, animal은 Object.prototype을, Object.prototype은 null을 상속 animal이 Object.prototype를 상속받는 이... Prototype상속obj.hasOwnProperty(key)object.keys프로토타입Prototype TIL 25 | JavaScript 객체 지향 프로그래밍 02 👏🏻 그렇기 때문에 이런 형식의 객체를 찍어내는 공장(constructor)을 만들거고, 이제 그 공장을 이용해서 객체를 양산해보자!! 그리고 이 Date 를 이용할때에는 new 라는 키워드를 붙여주고 하지만 그럼에도 우린 d1 이라는 객체를 사용할 수 있다. 그런데 앞에 new 라는 키워드를 붙이면 이제 이 함수는 더이상 일반적인 함수가 아니라!! → kim2에 있는 new Person이나... JavaScriptPrototypeObject Oriented ProgrammingJavaScript [자바스크립트] 객체의 속성 및 메서드 활용 기본 자료형 자바스크립트에서는 실체가 있는 것 undefined, null이 아닌 것 중에 객체가 아닌 것을 기본 자료형 이라고 한다 객체가 아니기 때문에 속성을 가질 수 없다 단순 기본 자료형이 아니기 때문에 속성을 가질 수 있다 속성과 메서드를 활용할 수도 있다 원래 기본 자료형은 속성과 메서드를 가질 수 없는데 문자열의 length 속성의 경우는 ?? 자바스크립트는 사용의 편리성을 위해... numberPrototypeJSON.parseisFinitetofixedisNaNJSON.stringfy()Math 객체split()자바스크립트JSON 객체Math.random기본 자료형객체 자료형JSON 객체 Prototype in JS javascript는 prototype-based language라고 한다. (모든 객체들이 메소드와 속성들을 상속 받기 위한 템플릿으로써 prototype object를 가진다는 의미) prototype object는 상위 prototype object로 부터 속성과 매서드를 상속 받을 수 있고 상위 prototype object도 마찬가지로 상속받을 수 있다. 이를 prototype ch... JavaScriptPrototypeJavaScript 자바스크립트 prototype에 대하여 ECMAScript 2015부터 [[Prototype]]에 조상 Object.getPrototypeOf()과 Object.setPrototypeOf()을 이용하여 접근하기 때문이다. 이것은 자바스크립트의 표준은 아니나 많은 브라우저에 구현되어 사실상의 표준이 된 속성 __proto__과 동일하다. 라고 되어있고 이는 표준에서는 [[Prototype]]이라 쓰지만 브라우저상에서는 __proto... Prototypejs prototypePrototype 클래스와 프로토타입 & 프로토타입 체인 모델의 청사진을 만들 때 쓰는 원형객체(original form)입니다. 함수는 객체다. 그러므로 생성자 함수도 객체(프로퍼티를 가질수 있다)다. prototype이라는 프로퍼티는 그 용도가 약속되어 있는 특수한 프로퍼티다. 클래스 생성시 prototype 생성 인스턴스 제작시 steve.proto; 생김 프로토타입이 상위 프로토타입까지 연결되는 구조를 말합니다. 즉, 하위 프로토타입은 상위... PrototypeclassPrototype [CS] prototype Day-23 객체 지향 프로그래밍의 등장 이전.. 절차적 언어에는 객체 지향의 개념이 없는 언어였습니다. 객체 지향 언어 현대의 언어들은 대부분 객체 지향 특징을 가지고 있습니다. 객체를 만들고 나며, 메모리상에서 반환되기 전가지 객체 내의 모든 것이 유지됩니다. 객체 내에서 원칙에 따라 메소드와 속성이 존재합니다. 새로운 객체를 만들 때, 속성에 고유한 값을 부여할 수 있습니다. 객체 지향 프로그래밍의... OOPencapsulationPrototypeprototype chain상속inheritance객체 지향 언어abstractionPolymorphism다형성instanceclass캡슐화추상화절차적 언어OOP JavaScript 15 프로토타입(Prototype) 여기서 Champ의 prototype에 {eSkill : '쿵'} 프로퍼티를 추가함 1️⃣ console.log(Malphite.eSkill); 근데 위에서 Malphite 객체에 따로 {eSkill : '쿵'}이라는 속성을 추가한 적이 없는데 이게 찍히는 이유는? 👉🏼 부모역할을 하는 Champ의 prototype(=유전자)에 속성을 추가했기 때문! 이렇게 되면 자식인 Malphite는 따... TILJavaScriptPrototypeJavaScript TIL_20210327 자바스크립트의 객체는 명세서에서 명명한 [[Prototype]]이라는 숨김 프로퍼티가 존재. 이 숨김 프로퍼티 값은 null이거나 다른 객체에 대한 참조가되는데, 다른 객체를 참조하는 경우 참조 대상을 '프로토타입(prototype)'이라 함 oject에서 프로퍼티를 읽으려고 하는데 해당 프로퍼티가 없으면 자바스크립트는 자동으로 프로토타입에서 프로퍼티를 탐색. 이러한 동작 방식을 '프로토타입... Prototype상속accessor property접근자 프로퍼티프로토타입 체이닝프로토타입Prototype