[CleanCode JS]オブジェクト&データ構造
10367 ワード
オブジェクトとデータ構造
getterとsetterの使用
set
の場合、検証ロジックを追加してコードを簡単にします.getting
科setting
の場合、彼を見つけたり、エラー処理をしたりしやすい.// bad
function makeBankAccount() {
// ...
return {
// ...
balance: 0
};
}
const account = makeBankAccount();
account.balance = 100;
// good
function makeBankAccount() {
// private으로 선언된 변수
let balance = 0;
// 아래 return을 통해 public으로 선언된 "getter"
function getBalance() {
return balance;
}
// 아래 return을 통해 public으로 선언된 "setter"
function setBalance(amount) {
// ... balance를 업데이트하기 전 검증로직
balance = amount;
}
return {
// ...
getBalance,
setBalance
};
}
const account = makeBankAccount();
account.setBalance(100);
1.オブジェクトのプライベートメンバーを作成します。
:エンクロージャを使用可能
// bad
const Employee = function(name) {
this.name = name;
};
Employee.prototype.getName = function getName() {
return this.name;
};
const employee = new Employee('John Doe');
console.log(`Employee name: ${employee.getName()}`); // Employee name: John Doe
delete employee.name;
console.log(`Employee name: ${employee.getName()}`); // Employee name: undefined
// good
function makeEmployee(name) {
return {
getName() {
return name;
},
};
}
const employee = makeEmployee('John Doe');
console.log(`Employee name: ${employee.getName()}`); // Employee name: John Doe
delete employee.name;
console.log(`Employee name: ${employee.getName()}`); // Employee name: John Doe
注意:GithubのリンクReference
この問題について([CleanCode JS]オブジェクト&データ構造), 我々は、より多くの情報をここで見つけました https://velog.io/@miniyoung37/CleanCodeJS객체-자료구조テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol