割り当て[TIL]0824オブジェクト構造分解


原文:モダンjavascriptチュートリアル

こうぞうぶんかい


バニラを習う
もう一度整理してから行きます.
混同しないで、賢い関数を使ってみましょう.

構造をオブジェクトに分解

let {var1, var2} = {var1:…, var2:…}


let options = {
  title: "Menu",
  width: 100,
  height: 200
};

let {title, width, height} = options;

console.log(title);  // Menu
console.log(width);  // 100
console.log(height); // 200
{}オプションを使用します.titleではなく{title}で値を抽出できます.
// let {...} 안의 순서가 바뀌어도 동일하게 동작함
let {height, width, title} = { title: "Menu", height: 200, width: 100 }
  • の順序は重要ではありません.(重要なのはインポート可能なキー値)
  • let options = {
      title: "Menu",
      width: 100,
      height: 200
    };
    
    // { 객체 프로퍼티: 목표 변수 }
    let {width: w, height: h, title} = options;
    
    // width -> w
    // height -> h
    // title -> title
    
    console.log(title);  // Menu
    console.log(w);      // 100
    console.log(h);      // 200
    
    console.log(width) // ERROR
    

    オブジェクト...ざんりゅうぶんぱい

    let options = {
      title: "Menu",
      height: 200,
      width: 100
    };
    
    // title = 이름이 title인 프로퍼티
    // rest = 나머지 프로퍼티들
    let {title, ...rest} = options;
  • titleは「Menu」、restは{height:200、width:100}を割り当てます.
  • console.log(rest.height);  // 200
    console.log(rest.width);   // 100
    あらかじめ宣言してletを使用する場合.
    let title, width, height;
    
    // SyntaxError: Unexpected token '=' 이라는 에러가 아랫줄에서 발생합니다.
    {title, width, height} = {title: "Menu", width: 200, height: 100};
    
    
    間違いを防ぐために.
    
    let title, width, height;
    
    // 에러가 발생하지 않습니다.
    ({title, width, height} = {title: "Menu", width: 200, height: 100});
    let options = {
      title: "My menu",
      items: ["Item1", "Item2"]
    };
    
    function showMenu({
      title = "Untitled",
      width: w = 100,  // width는 w에,
      height: h = 200, // height는 h에,
      items: [item1, item2] // items의 첫 번째 요소는 item1에, 두 번째 요소는 item2에 할당함
    }) {
      alert( `${title} ${w} ${h}` ); // My Menu 100 200
      alert( item1 ); // Item1
      alert( item2 ); // Item2
    }
    
    showMenu(options);