2010-03-03 25 views
12

Tôi muốn chuyển một tham số dữ liệu tùy chọn cho một số cuộc gọi lại, nhưng chỉ cho các cuộc gọi lại hỗ trợ một tham số duy nhất; ngay bây giờ, tôi có một cơ sở mã có kích thước vừa phải của các cuộc gọi lại mà không thể chấp nhận một tham số nào cả. Làm thế nào tôi có thể kiểm tra những tham số nào mà đối tượng Function hỗ trợ?Làm cách nào để xác định số đối số của hàm trong thời gian chạy trong Flex 3?

+0

Thành thật mà nói, thiết kế có vẻ hơi buồn cười. Bạn có thể đăng một số mã hiển thị những gì bạn đang cố gắng làm không? Bởi vì theo hiểu biết tốt nhất của tôi, tôi không tin rằng có bất kỳ cách nào để kiểm tra một hàm từ mà không cần xác định số tham số mà nó định nghĩa trong JavaScript hoặc ActionScript (trừ Patrick mô tả cho các thành viên của lớp ActionScript), vì đây là thường được nhà phát triển biết trước. –

+1

Chris? Bạn đã bao giờ tìm thấy câu trả lời cho câu hỏi này chưa? Nếu vậy, bạn có phiền khi đăng cập nhật không? – Joshua

Trả lời

2

Nếu chức năng của bạn được khai báo trong một class sử dụng functiondescribeType nó sẽ trả về một XML, bạn có thể phân tích và nhìn vào tên chức năng của bạn với lập luận của ông

+0

Nó không phải; đây là một hàm lambda, được truyền vào như một cuộc gọi lại. Tôi không thể tìm ra cách để có thêm thông tin từ nó. –

1

Mảng đối số là một mảng của tất cả các thông số thông qua thành một chức năng. Có lẽ đó là những gì bạn đang tìm kiếm?

function traceArgArray(x:int):void 
{ 
    for (var i:uint = 0; i < arguments.length; i++) 
    { 
     trace(arguments[i]); 
    } 
} 

Ví dụ lấy từ livedocs.adobe.com

+0

Điều đó không thực sự hữu ích. Tôi biết những gì các đối số là từ bên trong chức năng, tôi đang tìm hiểu làm thế nào để tìm ra những gì họ đang từ _outside_ phạm vi của chức năng. –

21

Chức năng là một Object. Mọi chức năng đều có thuộc tính chỉ đọc có tên là chiều dài lưu trữ số tham số được xác định cho hàm. Sử dụng nó.

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