Skip to content

Commit 9de63c0

Browse files
committed
5 classes
1 parent 344a04a commit 9de63c0

File tree

1 file changed

+31
-32
lines changed

1 file changed

+31
-32
lines changed

README.md

Lines changed: 31 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1479,11 +1479,11 @@ inventoryTracker.requestItems();
14791479
```
14801480
**[⬆ về đầu trang](#mục-lục)**
14811481

1482-
### Prefer ES2015/ES6 classes over ES5 plain functions
1483-
It's very difficult to get readable class inheritance, construction, and method
1484-
definitions for classical ES5 classes. If you need inheritance (and be aware
1485-
that you might not), then prefer classes. However, prefer small functions over
1486-
classes until you find yourself needing larger and more complex objects.
1482+
### Ưu tiên lớp ES2015/ES6 hơn các chức năng thuần ES5
1483+
Rất khó khăn để có thể đọc được lớp thừa kế, lớp khởi tạo, và các định nghĩa phương thức
1484+
trong các class ES5 cổ điển. Nếu bạn cần kế thừa (và lưu ý rằng bạn có thể không),
1485+
tốt hơn là nên sử dụng class. Tuy nhiên, những chức năng nhỏ sẽ tốt hơn các class
1486+
cho đến khi bạn thấy mình cần đối tượng lớn hơn và phức tạp hơn.
14871487

14881488
**Không tốt:**
14891489
```javascript
@@ -1554,13 +1554,12 @@ class Human extends Mammal {
15541554
```
15551555
**[⬆ về đầu trang](#mục-lục)**
15561556

1557-
1558-
### Use method chaining
1559-
This pattern is very useful in JavaScript and you see it in many libraries such
1560-
as jQuery and Lodash. It allows your code to be expressive, and less verbose.
1561-
For that reason, I say, use method chaining and take a look at how clean your code
1562-
will be. In your class functions, simply return `this` at the end of every function,
1563-
and you can chain further class methods onto it.
1557+
### Sử dụng phương pháp các hàm liên tiếp nhau
1558+
Mẫu này thì rất hữu ích trong JavaScript và bạn thấy nó trong rất nhiều thư viện
1559+
chẳng hạn như jQuery và Lodash. Nó cho phép code của bạn truyền tải và ngắn gọn.
1560+
Vì lý do đó, tôi nói, sử dụng phương pháp các hàm liên tiếp nhau và hãy xem code
1561+
của bạn sẽ sạch sẽ như thế nào. Trong các hàm class, thông thường trả về `this`
1562+
ở cuối mỗi hàm, và bạn có thể xâu chuỗi các phương thức lớp vào trong nó.
15641563

15651564
**Không tốt:**
15661565
```javascript
@@ -1606,25 +1605,25 @@ class Car {
16061605

16071606
setMake(make) {
16081607
this.make = make;
1609-
// NOTE: Returning this for chaining
1608+
// Ghi chú: Trả về this để xâu chuỗi các phương thức
16101609
return this;
16111610
}
16121611

16131612
setModel(model) {
16141613
this.model = model;
1615-
// NOTE: Returning this for chaining
1614+
// Ghi chú: Trả về this để xâu chuỗi các phương thức
16161615
return this;
16171616
}
16181617

16191618
setColor(color) {
16201619
this.color = color;
1621-
// NOTE: Returning this for chaining
1620+
// Ghi chú: Trả về this để xâu chuỗi các phương thức
16221621
return this;
16231622
}
16241623

16251624
save() {
16261625
console.log(this.make, this.model, this.color);
1627-
// NOTE: Returning this for chaining
1626+
// Ghi chú: Trả về this để xâu chuỗi các phương thức
16281627
return this;
16291628
}
16301629
}
@@ -1637,23 +1636,22 @@ const car = new Car()
16371636
```
16381637
**[⬆ về đầu trang](#mục-lục)**
16391638

1640-
### Prefer composition over inheritance
1641-
As stated famously in [*Design Patterns*](https://en.wikipedia.org/wiki/Design_Patterns) by the Gang of Four,
1642-
you should prefer composition over inheritance where you can. There are lots of
1643-
good reasons to use inheritance and lots of good reasons to use composition.
1644-
The main point for this maxim is that if your mind instinctively goes for
1645-
inheritance, try to think if composition could model your problem better. In some
1646-
cases it can.
1639+
### Ưu tiên thành phần hơn là kế thừa
1640+
Cũng như sự nổi tiếng trong [*Design Patterns*](https://en.wikipedia.org/wiki/Design_Patterns) của the Gang of Four, bạn nên sử dụng thành phần hơn là sử dụng thừa kế nếu bạn có thể.
1641+
Có rất nhiều lý do tốt để sử dụng kế thừa và rất nhiều lý do tốt để sử dụng thành phần.
1642+
Điểm nhấn cho phương châm này đó là nếu tâm trí của bạn đi theo bản năng thừa kế,
1643+
thử nghĩ nếu thành phần có thể mô hình vấn đề của bạn tốt hơn. Trong một số trường
1644+
hợp nó có thể.
16471645

1648-
You might be wondering then, "when should I use inheritance?" It
1649-
depends on your problem at hand, but this is a decent list of when inheritance
1650-
makes more sense than composition:
1646+
Sau đó bạn có thể tự hỏi, "khi nào tôi nên sử dụng thừa kế?" Nó phụ thuộc vào
1647+
vấn đề trong tầm tay của bạn, nhưng đây là một danh sách manh nha khi kế thừa
1648+
có ý nghĩa hơn thành phần:
16511649

1652-
1. Your inheritance represents an "is-a" relationship and not a "has-a"
1653-
relationship (Human->Animal vs. User->UserDetails).
1654-
2. You can reuse code from the base classes (Humans can move like all animals).
1655-
3. You want to make global changes to derived classes by changing a base class.
1656-
(Change the caloric expenditure of all animals when they move).
1650+
1. Kế thừa của bạn đại diện cho mỗi quan hệ "is-a" và không có mỗi quan hệ "has-a"
1651+
(Human->Animal vs. User->UserDetails).
1652+
2. Bạn có thể sử dụng lại code từ lớp cơ bản (Humans có thể di chuyển giống tất cả Animals).
1653+
3. Bạn muốn làm thay đổi toàn cục đến các lớp dẫn xuất bằng cách thay đổi lớp cơ bản.
1654+
(Thay đổi lượng calo của tất cả animal khi chúng di chuyển)
16571655

16581656
**Không tốt:**
16591657
```javascript
@@ -1666,7 +1664,8 @@ class Employee {
16661664
// ...
16671665
}
16681666

1669-
// Bad because Employees "have" tax data. EmployeeTaxData is not a type of Employee
1667+
// Không tốt bời vì Employees "có" dữ liệu thuế.
1668+
// EmployeeTaxData không phải là một loại của Employee
16701669
class EmployeeTaxData extends Employee {
16711670
constructor(ssn, salary) {
16721671
super();

0 commit comments

Comments
 (0)