4주차에는 '자바스크립트 비기너: 튼튼한 기본 만들기'에서 object, function, global오브젝트의 전체적인 개념을 살펴보고 공부했습니다. 😁✌
주차
진도
강의시간(분)
기간
4주차
10. Function 오브젝트,11. Global 오브젝트,9. Object 오브젝트(ES3 기준)
108
2021년 11월 5일 → 2021년 11월 11일
Object 오브젝트 (Object)
자바스크립트 오브젝트
빌트인 오브젝트
네이티브 오브젝트
호스트 오브젝트
네이티브 오브젝트
빌트인 오브젝트
사전에 만들어 놓은 오브젝트
네이티브 오브젝트
JS스펙에서 정의한 오브젝트
빌트인 오브젝트 포함
호스트 오브젝트
빌트인, 네이티브 오브젝트를 제외한 오브젝트
var node = document.querySelector("div");
DOM 오브젝트
프로퍼티 리스트
오브젝트 인스턴스 생성, 프리미티브 값 구하기
new Object()
인스턴스를 생성하여 반환
파라미터 데이터 타입에 따라 생성할 인스턴스 결정;
var newNum = new Number(123);
var newObj = new Object(123);
파라미터값이 undefined, null이면 빈 Object 인스턴스 반환
Object()
오브젝트 인스턴스 생성
{name : value}
생성 방법
var abc = {};
valueOf()
data 위치에 작성한 Object 인스턴스의 프리미티브 값 반환
var obj = {key: "value"}; console.log(obj.valueOf());
빌트인 오브젝트 구조, prototype
빌트인 오브젝트 구조
오브젝트 이름
오브젝트.prototype
인스턴스 생성 가능 여부 기준
프로퍼티를 연결하는 오브젝트
오브젝트.prototype.constructor
오브젝트의 생성자
오브젝트.prototype.method
메소드 이름과 함수 작성
오브젝트 구조
var proto = Object.prototype; //new Object()를 하거나 var obj={}를 실행하면 생성자가 호출되어 Object 인스턴스를 만듦
함수와 메소드 연결
함수
오브젝트에 연결
Object.create()
메소드
오브젝트의 prototype에 연결
Object.prototype.toString()
함수, 메소드 호출
함수 호출 방법
Object.create();
메소드 호출 방법
Object.prototype.toString();
또는 인스턴스 생성하여 호출
함수와 메소드의 구분
JS 코드 작성 방법이 다름
함수
파라미터에 값 작성
메소드
메소드 앞에 값을 작성
String.fromCharCode(49.65);
프로퍼티 처리 메소드
hasOwnProperty()
인스턴스에 파라미터 이름이 존재하면 true, 존재하지 않으면 false
자신이 만든 것이 아닌 상속받은 프로퍼티면 false 반환
값은 반환되지 않음
var obj = {value:undefined}; var own = obj.hasOwnProperty("value"); console.log(own); // true
propertyIsEnumerable()
오브젝트에서 프로퍼티를 열거할 수 있으면 true, 없으면 false
var obj = {sports : "축구"}; console.log(obj.propertyIsEnumerable("sports")); // true
{enumerable:false} //열거 불가 설정
Object와 prototype, 빌트인 Object 특징
빌트인 Object 특징
인스턴스를 만들 수 있는 모든 빌트인 오브젝트의 __proto__에 Object.prototype의 6개 메소드가 설정됨
빌트인 오브젝트도 만든 인스턴스에도 설정됨
var numberInstance = new Number(123);
var numberProto = numberInstance.__proto__;
//Number.prototype에 연결된 6개 메소드 표시됨
// new 연산자를 Number 인스턴스를 생성하면 Number.prototype에 엔결된 메소드를
// __proto__에 연결하기 때문
var objectProto = numberProto.__proto__;
isPrototypeOf()
object위치에 작성한 prototype이 존재하면 true, 존재하지 않으면 false
댓글