Function Object

Function có kiểu gì

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.

1
2
3
4
5
function hi(name) {
  console.log('Hello ' + name);
}
console.log(hi.name); // lấy tên hàm, trả về hi
console.log(hi.length); // lấy số lượng tham số, trả về 1

Trong trường hợp hàm là biểu thức hàm thì tên hàm như ví dụ sau:

1
2
3
4
5
var sayhi = function hi(name) {
  console.log('Hello ' + name);
}
console.log(sayhi.name); // trả về hi chứ không phải sayhi
console.log(sayhi.length); // 1

Thuộc tính trong hàm

Chúng ta có thể thêm thuộc tính vào hàm tương tự như object. Tính chất này sử dụng tương đương với biến hoặc hàm static của class.

1
2
3
4
5
6
7
8
function hi(name) {
  console.log('Hello ' + name);
  hi.counter++;
}
hi.counter = 0;
hi('Bill');
hi('Steve');
console.log('Đã gọi hàm hi() ' + hi.counter + ' lần');