You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
### 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.
1487
1487
1488
1488
**Không tốt:**
1489
1489
```javascript
@@ -1554,13 +1554,12 @@ class Human extends Mammal {
1554
1554
```
1555
1555
**[⬆ về đầu trang](#mục-lục)**
1556
1556
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ó.
1564
1563
1565
1564
**Không tốt:**
1566
1565
```javascript
@@ -1606,25 +1605,25 @@ class Car {
1606
1605
1607
1606
setMake(make) {
1608
1607
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
1610
1609
returnthis;
1611
1610
}
1612
1611
1613
1612
setModel(model) {
1614
1613
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
1616
1615
returnthis;
1617
1616
}
1618
1617
1619
1618
setColor(color) {
1620
1619
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
1622
1621
returnthis;
1623
1622
}
1624
1623
1625
1624
save() {
1626
1625
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
1628
1627
returnthis;
1629
1628
}
1630
1629
}
@@ -1637,23 +1636,22 @@ const car = new Car()
1637
1636
```
1638
1637
**[⬆ về đầu trang](#mục-lục)**
1639
1638
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ể.
1647
1645
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:
1651
1649
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)
1657
1655
1658
1656
**Không tốt:**
1659
1657
```javascript
@@ -1666,7 +1664,8 @@ class Employee {
1666
1664
// ...
1667
1665
}
1668
1666
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
0 commit comments