2010-03-26 26 views

Trả lời

32

JavaScript cho phép điều này, bạn có thể chuyển bất kỳ số lượng đối số tùy ý nào vào hàm.

Chúng có thể truy cập trong đối tượng arguments là đối tượng dạng mảng có thuộc tính số chứa giá trị của đối số được sử dụng khi hàm được gọi, thuộc tính length cho bạn biết có bao nhiêu đối số đã được sử dụng invocation cũng có, và một tài sản callee đó là một tham chiếu đến các chức năng riêng của mình, ví dụ bạn có thể viết:

function sum(/*arg1, arg2, ... , argN */) { // no arguments defined 
    var i, result = 0; 
    for (i = 0; i < arguments.length; i++) { 
    result += arguments[i]; 
    } 
    return result; 
} 
sum(1, 2, 3, 4); // 10 

đối tượng arguments thể trông giống như một mảng, nhưng nó là một đối tượng đơn giản, được thừa kế từ Object.prototype , nhưng nếu bạn muốn sử dụng các phương thức Mảng trên đó, bạn có thể gọi chúng trực tiếp từ Array.prototype, ví dụ, một mô hình phổ biến để có được một mảng thực là sử dụng phương pháp mảng slice:

function test() { 
    var args = Array.prototype.slice.call(arguments); 
    return args.join(" "); 
} 
test("hello", "world"); // "hello world" 

Ngoài ra, bạn có thể biết có bao nhiêu đối số hàm hy vọng, sử dụng length tài sản của chức năng đối tượng:

function test (one, two, three) { 
    // ... 
} 
test.length; // 3 
+0

bạn có thể gọi 'test.lengt h' trong hàm để kiểm tra số lượng đối số mà người dùng nhập vào? –

+0

hoặc có thể sử dụng '[] .slice.call (đối số);' – Mahi

4

có làm điều đó - thực hành tốt và là một tính năng JavaScript mạnh mẽ

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