Function Object
Trong Javascript, function là một object đặt biệt. Function là object có thể thực thi, ngoài ra ta có thể gán thêm thuộc tính cho function tương tự như object. Trong function có hai thuộc tính đó là tên hàm `name` và số lượng tham số `length`.
Bind, call và apply
Biến `this` trỏ tới đối tượng gọi hàm. Khi đối tượng gọi hàm thay đổi (hay context thay đổi) thì biến `this` sẽ nhận giá trị khác. Hàm call(), bind() và apply() sẽ thay đổi context của hàm.
Arrow Function với this
Arrow function (hàm mũi tên) là hàm không có con trỏ `this`, hay nói cách khác con trỏ `this` của hàm lúc này là con trỏ `this` của hàm gọi nó. Hay tương đương với `bind(this)` trong trường hợp hàm bình thường.