Understand JavaScript - Function are Object

=> Trong JS , các hàm là các đối tượng nhưng các đối tượng là các hàm thì nó khác biệt hơn một vài điểm so với đối tượng thông thường.


FirstClassFunction :  JS không phải là ngôn ngữ duy nhất có FirstClassFunction nhưng nó là ngôn ngữ phổ biến nhất mà chúng ta biết sử dụng FirstClassFunction mọi thứ bạn có thể làm với các kiểu dữ liệu như String , Boolean , Number bạn có thể làm với các hàm , bạn có thể gán các biến để giá trị nó làm một Function bạn có thể truyền các hàm xung quanh dưới dạng tham số cho các hàm khác , FirstClassFunciton thay đổi cách bạn lập trình.


Như trên mình vừa khẳng định trong JS các hàm chính là đối tượng vậy nó được biểu diễn trong bộ nhớ thế nào và nó khác gì so với đối tượng thông thường.

- Cũng giống như tất cả các đối tượng khác nó nằm trong bộ nhớ tuy nhiên nó có thêm một vài điểm đặc biệt , nó có tất cả các đặc điểm của object thông thường và có vài đặc trưng để no khác với các Object thông thường . Mọi người thường không biết rằng chúng ta có thể khai báo các thuộc tính và phương thức và một hàm ..tại sao ??? Bởi vì hàm đơn giản là một object




 - Đặc trưng đầu tiên : Object là Function ngoài tham chiếu đến các vùng nhớ chứa kiểu dữ liệu Primitive , Object , Function (Method) nó còn tham chiếu đến vùng nhớ chứa tên của nó nhưng mộ hàm không nhất thiết phải có tên (Anonymous Function) .
- Đặc trưng thứ 2 : Object là Function còn tham chiếu đến vùng nhớ chứa Code của nó (toàn bộ code viết bên trong nó) điều đặc biệt về vùng nhớ mà Function tham chiếu đến này là nó bất khả xâm phạm (Invocable) , khi bạn muốn chạy hàm đồng nghĩa với việc toàn bộ code trong vùng nhớ này thì JSE sẽ tạo ra EC mới ....

=> Để cho đơn giản bạn có thể coi name hay code chỉ là những thuộc tính của object (hàm) chỉ là những thuộc tính này không thể chỉnh sửa hay chúng ta có thể truy suất đươc mà chỉ được quyền sử dụng.

- Object có thể tham chiếu đến các thuộc tính và phương thức của nó.



Khi chúng ta tạo ra một Function thực chất thứ được đưa vào trong bộ nhớ là một Object



- Có property Name
- Có property là tất cả code trong hàm.





Nhận xét

Bài đăng phổ biến