object (5) 썸네일형 리스트형 6.6 객체로서의 함수와 기명 함수 표현식 📢 자바스크립트에서 함수는 값으로 취급된다. ◾️ 함수의 자료형은 객체이다. ◾️ 함수는 호출이 가능한(callable) 행동 객체이다. ◾️ 함수를 호출할 수도 있고, 객체처럼 함수에 프로퍼티를 추가, 제거하거나 참조를 통해 전달할 수도 있다. name 프로퍼티 ◾️ name 프로퍼티를 사용하면 함수 이름을 가져올 수 있다. function sayHi() { console.log("Hi"); } console.log(sayHi.name); //sayHi ◾️ 함수 객체에 이름을 할당해주는 로직은 익명 함수라도 자동으로 이름이 할당된다. let sayHi = function () { console.log("Hi"); } console.log(sayHi.name); // sayHi ◾️ 기본값을 사용해 이.. 4.8 객체를 원시형으로 변환하기 1. 객체는 논리 평가 시 true를 반환한다. 따라서 객체는 숫자형이나 문자형으로만 형 변환이 일어난다. 2. 숫자형으로의 형 변환은 객체끼리 빼는 연산을 할 때나 수학 관련 함수를 적용할 때 일어난다. (객체 Date끼리 차감하면 두 날짜의 시간 차이가 반환된다.) 3. 문자형으로의 형 변환은 대게 alert(obj)같이 객체를 출력하려고 할 때 일어난다. ToPrimitive 📢 특수 객체 메서드를 사용하면 숫자형이나 문자형으로의 형 변환을 원하는 대로 조절 할 수 있다. ◾️ 객체 형 변환은 'hint'라 불리는 값을 기준으로 세 종류로 구분된다. ⚠️ hint : 목표로 하는 자료형 ◾️ hint가 string일 때 : 문자열을 기대하는 연산을 수행할 때(객체 - 문자형 변환) // 객체를 출력.. 4.4 메서드와 'this' 📢 객체는 사용자(user), 주문(order) 등과 같이 실제 존재하는 개체(entity)를 표현하고자 할 때 생성된다. 자바스크립트에선 객체의 프로퍼티에 함수를 할당해 객체에게 행동할 수 있는 능력을 부여해준다. 메서드(method) 만들기 📢 객체 프로퍼티에 할당된 함수 ◾️ 함수 표현식으로 함수를 만들고, 객체 프로퍼티 user.sayHi에 함수를 할당해 준다. ◾️ 이미 정의된 함수를 이용해서 만들 수도 있다. let user = { name: 'suzu', age: 30 }; user.sayHi = function () { alert('Hi!'); } user.sayHi(); // Hi! 객체 지향 프로그래밍(object-oriented programming, OOP) 객체를 사용하여 개체를 .. 4.2 객체 - 참조에 의한 객체 복사 참조에 의한 객체 복사 📢 객체는 참조에 의해(by reference) 저장되고 복사된다. ◾️ 변수엔 객체가 그대로 저장되는 것이 아니라, 객체가 저장 되어 있는 '메모리 주소'인 객체에 대한 '참조 값'이 저장된다. ◾️ 객체는 메모리 내 어딘가에 저장되고, 변수에는 객체를 '참조❗️'할 수 있는 값이 저장된다. ◾️ 객체가 할당된 변수를 복사할 땐 객체의 참조 값만 복사되고 객체는 복사되지 않는다. ◾️ 변수는 두 개 이지만 각 변수엔 동일 객체에 대한 참조값이 저장된다. let user = { name: "suzu" }; let admin = user; admin.name = 'ruru'; console.log(user.name); // ruru 참조에 의한 비교 📢 객체 비교 시 피연산자인 두 .. 4.1 객체 - 객체 객체 📢 키로 구분된 데이터 집합이나 복잡한 개체(entity)를 저장할 수 있다. 객체의 생성 ◾️ 객체생성자 let user = new Object(); ◾️ 객체 리터럴 let user = {}; 리터럴과 프로퍼티 ◾️ Property → 키(key) : 값(value)로 구성 ◾️ Property를 추가, 삭제할 수 있다. ◾️ Property의 값(value)엔 모든 자료형 가능 ◾️ 여러 단어를 조합해 Property 이름을 만든 경우에는 따옴표로 묶어줘야 한다. ◾️ 마지막 Property 끝은 쉼표로 끝날 수 있다. (trailing, hanging쉼표) let user = { name: "suzu", age: 25, "one two": 12, }; delete user.age; // pr.. 이전 1 다음