기능적 클래스

2336 단어
자바스크립트에 대한 질문을 많이 봅니다. 제가 공부한 것 중 하나는 함수 대 클래스입니다.

내가 배운 것 중 하나는 함수로 작성할 수 있는 모든 것을 클래스로 작성할 수 있다는 것입니다.

아래에 예를 입력했습니다.
책 개체의 일부 속성을 제공하는 책 기능이 있습니다.

기능




function Book(title, author, ISBN, numCopies) {
  this.title = title;
  this.author = author;
  this.ISBN = ISBN;
  this.numCopies = numCopies;
}

Book.prototype.getAvailabitly = function() {
  if (this.numCopies == 0) {
    return "Out Of Stock";
  } else if (this.numCopies < 10) {
    return "Low Stock";
  }
  return "In Stock";
}

Book.prototype.sell = function(numCopiesSold = 1) {
  this.numCopies -= numCopiesSold;
}

Book.prototype.restock = function(numCopiesStocked = 5) {
  this.numCopies += numCopiesStocked;
}

const Divergent = new Book("Divergent", "Veronica Roth", 9780007550142, 5);
console.log(Divergent.getAvailabitly());
HungerGames.restock(12);
console.log(Divergent.getAvailabitly());
HungerGames.sell(17);
console.log(Divergent.getAvailabitly());


수업




class Book {
  constructor(title, author, ISBN, numCopies) {
    this.title = title;
    this.author = author;
    this.ISBN = ISBN;
    this.numCopies = numCopies;
  }

  get availability() {
    return this.getAvailability();
  }

  getAvailability() {
    if (this.numCopies === 0) {
      return "Out of stock";
    } else if (this.numCopies < 10) {
      return "Low stock";
    }
    return "In stock";
  }

  sell(numCopiesSold = 1) {
    this.numCopies -= numCopiesSold;
  }

  restock(numCopiesStocked = 5) {
    this.numCopies += numCopiesStocked;
  }
}

const Divergent = new Book("Divergent", "Veronica Roth", 9780007550142, 5);
console.log(Divergent.getAvailabitly());
HungerGames.restock(12);
console.log(Divergent.getAvailabitly());
HungerGames.sell(17);
console.log(Divergent.getAvailabitly());


둘 다 동일한 결과를 제공합니다.
하지만 클래스 메서드 사용에 대해 제가 좋아하는 것 중 하나는 코드를 캡슐화하여 어떤 함수가 클래스에 속하는지 알 수 있다는 것입니다. 코드를 더 잘 구성하고 흐름을 따르는 데 도움이 됩니다.

내가 배우면서 둘 중 하나를 선택해야 할 때 수업이 점점 더 표준이 되고 있습니다.

내가 배우는 동안 다른 사람들이 이 길을 더 쉽게 만들 수 있도록 계속 도울 수 있기를 바랍니다.

이것이 도움이 되길 바라며 언제나처럼
행복한 코딩 👨🏿‍💻👨🏻‍💻🧑🏾‍💻👩‍💻

좋은 웹페이지 즐겨찾기