728x90
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: ƒ}
가독성을 위해 더미함수를 사용하기도 한다.
728x90