Có một cách khác, khai báo hàm của bạn thành một biến như sau:
test = function() {
alert("test");
}
jsFiddle
Chi tiết
CHỈNH SỬA (dựa trên nhận xét của @nnnnnn)
@nnnnnn:
tại sao nói test =
(không có var
) sẽ sửa chữa nó?
Khi bạn xác định một hàm như thế này:
var test = function(){};
Hàm được định nghĩa cục bộ, nhưng khi bạn xác định hàm của mình mà không có var
:
test = function(){};
test
được xác định trên window
đối tượng ở phạm vi cấp cao nhất.
tại sao nó hoạt động?
Giống như @zalun nói:
Nếu bạn không chỉ định cài đặt bọc, nó sẽ mặc định là "onLoad". Điều này dẫn đến việc tất cả JavaScript được bao bọc trong một hàm chạy sau khi kết quả được tải. Tất cả các biến là cục bộ của hàm này do đó không khả dụng trong phạm vi toàn cục.
Nhưng nếu bạn sử dụng cú pháp này:
test = function(){};
Bạn có quyền truy cập vào hàm test
vì nó được xác định trên toàn cầu
Người giới thiệu :