JavaScript .05


004.オブジェクトとメソッド


複数の関連関数を組み合わせたい場合(=オブジェクト)
オブジェクトのpropertyは任意のデータ型を格納できるため、関数をproperty値として格納できます.
let greetings = { // sayHello, sayHi, sayBye : 세가지의 메소드
  sayHello: function() { // sayHello(프로퍼티네임) = 함수이름대신사용
    console.log("hello!");
  },
  sayHi: function() {
    console.log("hi!");
  },
  sayBye: function() {
    console.log("BYE");
  }
};

greetings.sayHello(); //"hello!"
// 파라미터 사용시
let greetings = { // sayHello, sayHi, sayBye : 세가지의 메소드
  sayHello: function(name) { // sayHello(프로퍼티네임) = 함수이름대신사용
    console.log(`Hello ${name}!`);
  },
  sayHi: function() {
    console.log("hi!");
  },
  sayBye: function() {
    console.log("BYE");
  }
};

greetings.sayHello("JM"); //(=console.log와 모양이 비슷 콘솔이라는 객체의 로고 메소드)
greetings["sayHello"]("JM"); //대괄호표기법 : [프로퍼티에 먼저접근](메소드 호출)
  • メソッドを使用して関数を使用する理由は、あるオブジェクトの固有の動作によって関数に意味を与えることができるからです!

  • メソッドは、他の関数の名前を繰り返すことを回避します.

  • オブジェクトに集中して関数のアクションセクションを作成できます

  • 使用時にオブジェクトのユニークな動作に分割することもできますので、より意味のあるコードとして使用できます.
    let rectAngle = {
      width: 30,
      height: 50,
      getArea: function() {
        return rectAngle.width * rectAngle.height;
      }
    }
    
    let triAngle = {
      width: 15,
      height: 40,
      getArea : function() {
        return triAngle.width * triAngle.height / 2;
      }
    }
    
    // 메소드를 활용하면 다른 함수의 이름 중복을 피할수 있음
    // 좀더 객체에 집중해서 함수의 동작 부분을 작성할 수가 있음
    // 사용할때도 객제의 고유한 동작으로 구분할수 있기때문에 좀더 의미있는 코드로 활용가능
  • 例(他の英語単語の出力を削除)

  • パラメータを使用して別の変数の値を入力場合、カッコ記号
  • を使用します.
  • メソッドもプロフェッショナルなので、必ず各プロフェッショナルの
  • をカンマで区切ることを忘れずに
    let myVoca = {
      // 코드를 작성해 주세요.
      addVoca : function(word,meaning) {
        myVoca[word] = meaning; // 파라미터로 다른 변수에 담긴값을 가져올때 : [표기법]
      },
      deleteVoca : function(word){
        delete myVoca[word]; //메소드도 프로퍼티기 때문에 꼭 쉼표로 각 프로퍼티를 구분
      },
      printVoca : function(word) {
        console.log(`"${word}"의 뜻은 "${myVoca[word]}"입니다.`);
      }
    };
    
    // addVoca메소드 테스트 코드
    myVoca.addVoca('parameter', '매개 변수');
    myVoca.addVoca('element', '요소');
    myVoca.addVoca('property', '속성');
    console.log(myVoca);
    
    // // deleteVoca메소드 테스트 코드
    myVoca.deleteVoca('parameter');
    myVoca.deleteVoca('element');
    console.log(myVoca);
    
    // // printVoca메소드 테스트 코드
    myVoca.printVoca('property');

    005. for...複文


    オブジェクト内のPropertyを使用した繰返し動作
    これは
  • オブジェクトを持つProperties名の重複文であり、特殊な通常のfor文では置き換えられない重複文
  • である.
  • を使用(특정한 변수 in 반복할 객체) : 객체의 프로퍼티 네임이 변수에 할당 -> 객체에 프로퍼티 개수만큼 반복동작
    for(변수 in 객체) {
      // (특정한 변수 in 반복할 객체) : 객체의 프로퍼티 네임이 변수에 할당 -> 객체에 프로퍼티 개수만큼 반복동작
      동작부분
    };
    let miinii = {
      name : "MIINII",
      bornYear : 1800,
      insungGood : true,
      worst : null,
      bestPoint : "미니공주"
    }
     
    for (let key in miinii) { //key라는 변수에 miinii의 프로퍼티 개수만큼 반복
      console.log(key);
    }
    for (let key in miinii) { //key라는 변수에 miinii의 프로퍼티 개수만큼 반복
      console.log(key); // 네임 
      console.log(miinii[key]); // 대괄호 : 프로퍼티값(벨류)에도 접근
    }