js koans 오답/리뷰노트 (objects)

헷갈렸던 부분은 다음과 같다.


//should know properties that are functions act like methods
  it("should know properties that are functions act like methods", function () {
//메소드와 같이 기능하는 프로퍼티를 알아야 한다.
    var megalomaniac = {
      mastermind: "Brain",
      henchman: "Pinky",
      battleCry: function (noOfBrains) {

        return (
          "They are " +
          this.henchman +
          " and the" +
          Array(noOfBrains + 1).join(" " + this.mastermind)


        );
      },
    };

    var battleCry = megalomaniac.battleCry(4);
    expect("They are Pinky and the Brain Brain Brain Brain").toMatch(battleCry);
//왜 Brain을 4번 반복할까?
  });

noOfBrain 인자만큼 전달된 수의 +1 길이의 배열을 만든다.
join() 메서드는 배열의 모든 요소를 연결해 하나의 문자열로 만든다.
빈 문자열 5개를 join으로 합쳐 하나의 배열로 만들었다. 그리고 구분자는(" "+this.mastermind),즉 Brain이다.
따라서, 이러한 형태로 출력된다.

[빈 문자열]Brain[빈 문자열]Brain[빈 문자열]Brain[빈 문자열]Brain[빈 문자열]

따라서, Brain이 4번 출력되는 것이다.

좋은 웹페이지 즐겨찾기