객체 :
object라고 불리며 객체란 이름과 값으로 구성된 프로퍼티의 정렬되지 않은 집합이다.
프로퍼티값으로 함수가 올수도 있는데 이러한 프로퍼티를 메소드(Method)라고 한다.
자바스크립트의 객체는 키와 값으로 구성된 프로퍼티들의 집합
프로퍼티 :
프로퍼티는 키(key) : 값(value) 의 형식이다.
key는 속성명이라 생각해도되고 문자열만 가능하다
value는 속성값이라 부르며 어떤값(문자열 숫자 객체 함수등)이든지 상관없다.
함수 :
작업을 수행하거나 값을 계산하는 명령문의 집합인 프로시저(procedure)와 비슷하지만
프로시저가 함수로 쓰이려면 입력을 반드시 받아야하고 입려과 명확한 관계가 있는 출력을
반환해야 한다. 또 함수를 사용하려면 함수를 호출할 스코프 내에서 함수를 정의 해야 한다.
※프로시저 : 어떤 임무를 수행하기 위한 절차를 뜻한다.
자바스크립트 객체로 주로 하는일이란? :
자바스크립트의 객체는 키와 값으로 구성된 프로퍼티들의 집합
자바스크립트 객체의 프로퍼티란? :
서랍장 안에 이름표가 붙어 있는 파일이라고 생각하면 된다
객체(서랍장) 안에 선언된 key(이름표)와 value(내용)으로 이루어진
한 쌍(파일)을 말한다.
프로퍼티는 프로퍼티 키로 유일하게 식별할 수 있다.
즉, 프로퍼티 키는 프로퍼티를 식별하기 위한 식별자이다.
단순한 해쉬와 자바스크립트 객체의 차이점이란?
자바스크립트는 동적언어라서 런타임 중에 데이터의 상대주소인 오프셋이 실시간으로 바뀌는데
동적 형태인 해시테이블은 최신 상태로 갱신하여 프로퍼티의 변경된 오프셋을 갱신할 수 없다.
해시는 자료를 저장하는 데이터 기법이고
즉 해시함수라는 것을 통해 저장하는 방식이고 객체는 키와 값으로 된
프로퍼티를 저장한 것이다 해시함수를 쓰는 것이 아니라 단순하게 저장된 방식
일급 객체는 어떠한 특정 언어에 국한되는 문법 단어가 아니다
프로그래밍 언어론의 개념으로 파이썬, 자바스크립트 등이 일급 객체 개념을 가지고 있다.
다른 언어에서의 함수는 어떤 특징이 있나요?
C : 함수 선언시 자료형 명시해야하며, return 값이 정해져 있지 않다.
파이썬 : return, argument type을 따로 지정하지 않고 자동으로 선택된다.
자바스크립트에서의 함수는 일급객체이다.
다른언어에서는 함수가 값이 될 수 없지만, 자바스크립트에서는 값이 될 수 있다.
(값이기 때문에 변수로 할당하고, 다른 함수의 인자로 전달되고,
반환 값으로도 사용 할 수 있다.)
생성자 함수에 대해서 조금만 더 설명해줄 수 있나요?