기능적 클래스
내가 배운 것 중 하나는 함수로 작성할 수 있는 모든 것을 클래스로 작성할 수 있다는 것입니다.
아래에 예를 입력했습니다.
책 개체의 일부 속성을 제공하는 책 기능이 있습니다.
기능
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());
둘 다 동일한 결과를 제공합니다.
하지만 클래스 메서드 사용에 대해 제가 좋아하는 것 중 하나는 코드를 캡슐화하여 어떤 함수가 클래스에 속하는지 알 수 있다는 것입니다. 코드를 더 잘 구성하고 흐름을 따르는 데 도움이 됩니다.
내가 배우면서 둘 중 하나를 선택해야 할 때 수업이 점점 더 표준이 되고 있습니다.
내가 배우는 동안 다른 사람들이 이 길을 더 쉽게 만들 수 있도록 계속 도울 수 있기를 바랍니다.
이것이 도움이 되길 바라며 언제나처럼
행복한 코딩 👨🏿💻👨🏻💻🧑🏾💻👩💻
Reference
이 문제에 관하여(기능적 클래스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/codejones/functional-class-56b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)