반응형

자바스크립트 참조타입


자바스크립트의 객체(=참조) 타입


이전 포스팅에서 말했듯이 자바 기본타입에는 number, string, boolean, null, undefined 가 있었다.

5가지 형태의 기본타입을 제외한 모든것은 '객체' 이며, 참조타입의 변수이다.


자바스크립트에서 변수란 이름(key) : 값(value) 형태의 프로퍼티들을 저장하는 컨테이너다.


자바스크립트 객체 생성방식


Object() 생성자 함수

var objVar = new Object(); // Object()생성자로 objVar 라는 빈 객체 생성


objVar.name = 'Hwi';

objVar.gender = 'male';

// objVar에 name, gender 프로퍼티 생성


console.log(typeof objVar); // objVar의 타입출력, 출력값 object

console.log(objVar) // '이름(key) : 값(value)' 형태로 객체 출력

// 출력값 {name:'Hwi', gemder:'male'}


객체 리터럴 방식 이용


리터럴 방식이란 객체를 생성하는 표기법으로, 중괄호{} 를 이용해서 객체를 생성한다. 프로퍼티 값으로는 어떠한 표현식도 올 수 있으며,

프로퍼티 값으로 함수가 있을 경우, 이를 자바스크립트에서 '메서드' 라고 호칭한다.

var objVar = {

name : 'Hwi',

gender : 'male'

};


console.log(typeof objVar); // Object() 생성자 함수 방식과 동일출력


생성자 함수 생성 방식


자바스크립트에서 함수를 생성하는 방법은 3가지가 있다.

함수 선언문 방식, 함수 표현식 방식, Function() 생성자 함수 방식이 있다.


- 함수 선언문 방식

함수 선언문 방식은 반드시 함수명이 정의되어 있어야 한다. C프로그래밍에서의 함수 정의 방식과 유사하지만,
function 키워드를 명시적으로 사용하고, 매개변수로 타입을 기술하지 않는다.

function addVar(x, y){ // 매개변수 x, y를 받는 함수 선언

return x + y; // x + y 의 값을 반환

}


console.log(addVar(3, 4)) // 출력값 7


- 함수 표현식 방식

자바스크립트 에서는 함수도 하나의 값처럼 취급된다. 따라서 함수도 숫자나 문자열 처럼 변수에 할당하는 것이 가능하다.

함수 리터럴로 하나의 함수를 만들고, 생성된 함수를 변수에 할당하여 생성하는 것을 함수 표현식 이라고 한다.

var addVar = function(x, y){ // 매개변수 x, y를 받는 함수를 addVar에 할당

return x + y; // x + y 의 값을 반환

}


console.log(addVar(3, 4)); // 출력값 7


- Function() 생성자 함수 방식

자바스크립트의 함수도 Function() 이라는 기본 내장 생성자 함수로부터 생성된 객체라고 볼 수 있다.

var addVar = new Function('x', 'y', 'return x + y');

console.log(add(3, 4));


생성자 함수 방식에서는 함수선언문, 함수표현식 방식이 자주 사용된다.

Function() 생성자 함수 방식은 실무에서 사용되는건 거의 보지 못하였고, 소스분석할 때 나오는 경우가 있다고 한다.


반응형

+ Recent posts