객체 및 프로토타입 상속 및 for...in 루프를 통한 루프

술어




  • __proto__ : 객체에는 프로토타입 상속을 통해 다른 속성과 기능에 액세스할 수 있는 __proto__ 속성이 있습니다.

  • 프로토타입 상속: 객체 프로토타입을 통해 기능을 상속합니다.




  • Object.keys()를 사용하여 속성 반복




    const adaKeys = Object.keys(mathematician);
    let adaString = ""
    adaKeys.forEach(function(key) {
      adaString = adaString.concat(key + ": " + mathematician[key] + "\n"); 
    });
    


    for...in을 사용하여 속성 반복




    for (const key in mathematician) {
      if (contact.hasOwnProperty(key)) {
        console.log(mathematician[key]);
      }
    }
    


    참고: 객체 자체의 속성만 반복하려면 Object.prototype.hasOwnProperty()를 사용하세요.

    모범 사례




  • 양식 제출 블록에 코드를 추가하는 대신 별도의 UI 기능을 만듭니다. 이를 통해 우리는 한 번에 하나의 함수를 작성하는 데 집중할 수 있고 코드를 모듈화할 수 있습니다.

  • 변수 안에 jQuery 선택기를 저장합니다. 그렇게 하면 선택기를 여러 번 사용해야 하는 경우 jQuery가 DOM을 한 번만 쿼리하면 되므로 코드가 더 빠르고 효율적입니다.
  • DOM에 추가할 모든 요소의 목록을 만들고 한 번에 하나씩 추가하지 않고 한 번에 모두 추가합니다. 이것은 또한 더 빠르고 효율적입니다.




  • 주소록에 연락처를 표시하는 UI 함수 만들기:

    function displayContactDetails(addressBookToDisplay) {
      let contactsList = $("ul#contacts");
      let htmlForContactInfo = "";
      Object.keys(addressBookToDisplay.contacts).forEach(function(key) {
        const contact = addressBookToDisplay.findContact(key);
        htmlForContactInfo += "<li id=" + contact.id + ">" + contact.firstName + " " + contact.lastName + "</li>";
      });
      contactsList.html(htmlForContactInfo);
    };
    


    술어





  • 이벤트 버블링: 이벤트가 DOM에서 트리거될 때 이벤트가 위로 버블링되는 프로세스입니다.

  • 이벤트 위임: 지정된 모든 하위 요소에 대해 발생하는 상위 요소에 대한 이벤트 리스너를 만드는 프로세스입니다.




  • 다음은 예입니다.

    <div id="top-level">
      <ul id="contacts">
        <li id=1>Contact 1</li>
        <li id=2>Contact 2</li>
        <li id=3>Contact 3</li>
      </ul>
    </div>
    


    위의 샘플 HTML에서 li를 클릭하면 먼저 li 에서 리스너를 트리거한 다음 #contacts 에서 리스너를 트리거한 다음 #top-level 에서 리스너를 트리거합니다.

    function attachContactListeners() {
      $("ul#contacts").on("click", "li", function() {
        console.log("The id of this <li> is" + this.id + ".");
      });
    }
    

    "ul#contacts"  상위 요소입니다. 상위 요소 내의 모든 li 요소가 트리거됩니다. on   "click" .




    DOM에 연락처를 표시하는 UI 함수를 만듭니다.

    function showContact(id) {
      const contact = addressBook.findContact(id);
      $("#show-contact").show();
      $(".first-name").html(contact.firstName);
      $(".last-name").html(contact.lastName);
      $(".address").html(contact.phoneNumber);
      let buttons = $("#buttons");
      buttons.empty();
      buttons.append("<button class='deleteButton' id=" +  + contact.id + ">Delete</button>");
    }
    

    좋은 웹페이지 즐겨찾기