본문 바로가기

Code/web-frontend

JavaScript assign 문법

a = {
    a: '1',
    b: '2',
    c: '3'
}
// {a: "1", b: "2", c: "3"}

Object.assign(a, function () {
	return { d: '4' };
}());
// {a: "1", b: "2", c: "3", d: "4"}

Object.assign(a, {e: '5'});
// {a: "1", b: "2", c: "3", d: "4", e: "5"}

Object.assign(a, {f: function() { return 'hello'}});
/*
a: "1"
b: "2"
c: "3"
d: "4"
e: "5"
f: ƒ ()
*/

Object.assign(a, {g: function() { return 'hello'}()});
/*
a: "1"
b: "2"
c: "3"
d: "4"
e: "5"
f: ƒ ()
g: "hello"
*/

 

 

알파벳 e 나 f에 함수가 들어가는 부분이 중요한데,

결국 a 라는 객체에 필드와 메서드를 넘긴다.

 

여러개인 경우나 내용이 긴 함수들이 있을수 있으니 가독성을 위해 중간에 바로 리턴하는 함수를 만들어서 코드를 작성한다. 즉 f 인 경우

 

Object.assign(a, function() {
	sayHello = function () {
		return 'hello';
    }
    return {d : sayHello};
}());
// {a: 1, b: 2, c: 3, d: ƒ}

가독성을 위해 더미함수를 사용하기도 한다.