Hàm như một biến trong JavaScript
Vậy là trong bài học trước, chúng ta đã biết rằng, khi truy cập một hàm mà không có dấu ngoặc đơn, chúng ta nhận được mã nguồn của nó.
Thực tế, mọi thứ thú vị hơn nhiều. Trong JavaScript, không giống như các ngôn ngữ khác, các hàm là những giá trị biến giống như số, chuỗi và mảng.
Hãy cùng xem một ví dụ. Giả sử chúng ta
có, ví dụ, hàm func:
function func() {
console.log('!');
}
Thực ra chúng ta không có hàm func.
Chúng ta có biến func, lưu trữ
mã nguồn của hàm bên trong nó.
Chúng ta có thể, ví dụ, ghi đè biến
func bằng một thứ gì đó khác, chẳng hạn như
một chuỗi. Trong trường hợp này, hàm func
sẽ không còn là một hàm nữa, mà sẽ là một chuỗi.
Hãy xem ví dụ:
function func() {
console.log('!');
}
func(); // in ra '!'
func = 'string'; // ghi đè biến func
console.log(func); // in ra 'string'
Tạo hàm func, hàm này sẽ
trả về một chuỗi bất kỳ thông qua return.
In kết quả thực thi của hàm func
ra console.
In mã nguồn của hàm func
ra console.
Gán số 123 vào biến func,
từ đó ghi đè hàm trong biến này.
In giá trị mới của biến func
ra console.