File tree 1 file changed +25
-28
lines changed
1 file changed +25
-28
lines changed Original file line number Diff line number Diff line change @@ -943,48 +943,45 @@ cần phải tìm kiếm và thay đổi mỗi accessor trong codebase của b
943
943
944
944
** Không tốt:**
945
945
``` javascript
946
- class BankAccount {
947
- constructor () {
948
- this .balance = 1000 ;
949
- }
950
- }
946
+ function makeBankAccount () {
947
+ // ...
951
948
952
- const bankAccount = new BankAccount ();
949
+ return {
950
+ balance: 0 ,
951
+ // ...
952
+ };
953
+ }
953
954
954
- // Buy shoes...
955
- bankAccount .balance - = 100 ;
955
+ const account = makeBankAccount ();
956
+ account .balance = 100 ;
956
957
```
957
958
958
959
** Tốt:**
959
960
``` javascript
960
- class BankAccount {
961
- constructor (balance = 1000 ) {
962
- this ._balance = balance;
963
- }
961
+ function makeBankAccount () {
962
+ // this one is private
963
+ let balance = 0 ;
964
964
965
- // Không cần phải thêm tiền tố `get` hay `set` để trở thành một getter hay setter
966
- set balance (amount ) {
967
- if (this .verifyIfAmountCanBeSetted (amount)) {
968
- this ._balance = amount;
969
- }
965
+ // Một "getter", thiết lập public thông qua đối tượng được trả về dưới đây
966
+ function getBalance () {
967
+ return balance;
970
968
}
971
969
972
- get balance () {
973
- return this ._balance ;
970
+ // Một "setter", thiết lập public thông qua đối tượng được trả về dưới đây
971
+ function setBalance (amount ) {
972
+ // ... validate before updating the balance
973
+ balance = amount;
974
974
}
975
975
976
- verifyIfAmountCanBeSetted ( val ) {
976
+ return {
977
977
// ...
978
- }
978
+ getBalance,
979
+ setBalance,
980
+ };
979
981
}
980
982
981
- const bankAccount = new BankAccount ();
982
-
983
- // Buy shoes...
984
- bankAccount .balance -= shoesPrice;
985
-
986
- // Get balance
987
- let balance = bankAccount .balance ;
983
+ const account = makeBankAccount ();
984
+ account .setBalance (100 );
988
985
989
986
```
990
987
** [ ⬆ về đầu trang] ( #mục-lục ) **
You can’t perform that action at this time.
0 commit comments