2013-08-24 40 views
8

Tôi muốn đánh giá hàm gọi lại trước khi chấp nhận nó. Điều này có nghĩa là tôi cần biết ít nhất số lượng người được chấp nhận - nếu số lượng không khớp, tôi sẽ để lại cảnh báo trong bảng điều khiển. Nhưng tôi không thể tìm ra, cho dù một đối tượng chức năng javascript có một tài sản sẽ giúp tôi có được thông tin đó.
Vì vậy, điều này có thể đạt được mà không cần chức năng phân tích cú pháp dưới dạng chuỗi (không đáng giá)?Nhận số đối số (hoặc thậm chí cả tên) của đối tượng hàm javascript

Trả lời

18

Chức năng có a length property cho bạn biết số lượng có tên là đối số mà nó chấp nhận. Tuy nhiên, lưu ý, một hàm có thể sử dụng biến số arguments để truy cập các biến, ngay cả khi nó không đặt tên cho chúng; length không phục vụ cho điều này (cũng không có một thay thế nào).

function foo(a, b) { 
    for (var i=0;i<arguments.length;i++) { 
     console.log(arguments[i]); 
    } 
} 

console.log(foo.length); // reports 2, even though `foo` can access all your arguments! 
+0

Cảm ơn bạn. Có một đặc tả đầy đủ các thuộc tính và phương thức đối tượng hàm không? Tôi không tìm được. –

+0

@Tomas: liên kết trong câu trả lời của tôi sẽ cung cấp thông tin này. – Matt

-3

Đây là phiên bản ngắn hơn var a = function() {return [... lập luận] .length}

Các vấn đề liên quan