언어/JavaScript

[JavaScript]ES5와 ES6의 차이(5) - Concise Method, Spread

GAEBAL 2022. 5. 7. 00:27
728x90

ES5와 ES6의 차이(5) - Concise Method, Spread

Concise Method

함수 선언을 더 간편하게!

  <script>
    // ES5: 회원 객체 속성과 메서드
    const member1 = {
      userid: "user01",
      name: "홍길동",
      age: 26,
      setName: function(name) {this.name = name;},
      getName: function() {return this.name;},
      toString: function() {return userid + ", " + name + ", " + age;}
    }

    // ES6: concise method: 객체의 함수 선언 시에 함수명(){}
    const member2 = {
      userid: "user02",
      name: "강감찬",
      age: 88,
      setName(name) {this.name = name;},
      getName() {return this.name;},
      toString() {return userid + ", " + name + ", " + age;}
    }
  </script>

 

 

Spread

객체 또는 배열의 복사, 객체에 속성 추가, 배열에 요소 추가를 아주 편하게!!

<script>
	// ES6: spread: 객체 또는 배열 복사하기
    // 객체
    const member = {
      userid: "user01",
      name: "홍길동"
    }

    // 객체 복사: {...객체명}
    const memberCopy = {...member}
    console.log("member = ", member);
    console.log("memberCopy = ", memberCopy);

    member.name = "이순신";
    memberCopy.name = "유관순";
    console.log("member = ", member);
    console.log("memberCopy = ", memberCopy);

    // 배열
    const array = [1, 2, 3]
    
    // 배열 복사: [...배열명]
    const arrayCopy = [...array];
    console.log("array = ", array);
    console.log("arrayCopy = ", arrayCopy);

    // 객체 복사 + 속성 추가: {...객체명, age:26, address:"서울특별시"}
    const memberCopyAdd = {...member, age: 26, address: "서울특별시"};
    console.log("memberCopyAdd = ", memberCopyAdd);

    // 배열 복사 + 배열 요소 추가: [...배열명, value, value]
    const arrayCopyAdd = [...array, 100, 200, 300];
    console.log("arrayCopyAdd = ", arrayCopyAdd);

    // 배열 concat 배열 + [배열 요소 추가]
    const array2 = ["apple", "banana", "orange"];
    const arrayConcatAdd = [...array, ...array2, 333, 777, 999];
    console.log("arrayConcatAdd = ", arrayConcatAdd);
</script>

실행 결과

 

728x90