Các khái niệm lập trình: hàm Javascript như các objects và biến
Các hàm, như hầu hết mọi thứ trong Javascript là các objects với tập các đặc tính và phương thức
của bản thân chúng. Vì lí do này, một hàm có thể được copy và lưu giữ như một biến để tạo các
closures. Các đặc tính của function object bao gồm cái sau:
+ function.name trả về tên hàm.
+ function.caller trả về hàm cái gọi hàm.
+ function.length trả về số các đối số sử dụng bởi hàm.
Ví dụ, các lệnh sau ghi lại số các đối số yêu cầu bởi constructor function myHand(), trả về một giá trị
là 1 vì hàm có một đối số đơn.
let myHand = newPokerHand(5);
console.log(myHand.constructor.length); // logs “1”
Vì các hàm là các objects, bất cứ hàm nào có thể được tạo sử dụng object constructor new Function().
let function = new Function(arg1, arg2, …, body);
nơi function là tên hàm, arg1, arg2 etc là các đối số của hàm, body là code hàm. Code sau tạo hàm adder() sử
dụng cho trả về tổng 2 giá trị:
let adder = new Function(“x”, “y”, “return x + y”);
Hàm adder() tương ứng với tập phát biểu sau:
function adder(x, y) {
return x + y;
}
Một ưu điểm của new Function() constructor là rằng nó có thể được sử dụng để xây dụng các hàm động các đặc tính
và phương thức của chúng bản thân là các biến.