Như được đề cập trong các câu trả lời khác, thuộc tính length
cho bạn biết điều đó. Vì vậy zero.length
sẽ là 0, one.length
sẽ là 1, và two.length
sẽ 2.
Tính đến ES2015, chúng ta có hai nếp nhăn:
- Chức năng có thể có một tham số "nghỉ ngơi" ở cuối của tham số danh sách mà tập hợp lên bất kỳ đối số được đưa ra tại vị trí đó hoặc sau đó vào một mảng thật sự (không giống như các pseudo-mảng
arguments
)
- thông số chức năng có thể có giá trị mặc định
các "res t" tham số không được tính khi xác định arity của hàm:
function stillOne(a, ...rest) { }
console.log(stillOne.length); // 1
Tương tự như vậy, một tham số với một đối số mặc định không thêm vào arity, và trong thực tế ngăn chặn bất kỳ người khác sau đó từ thêm vào nó ngay cả khi họ không có giá trị mặc định rõ ràng (họ đang giả định có một mặc định im lặng của undefined
):
function oneAgain(a, b = 42) { }
console.log(oneAgain.length); // 1
function oneYetAgain(a, b = 42, c) { }
console.log(oneYetAgain.length); // 1
Nguồn
2016-12-15 18:57:30
Tính chất của hàm() {return arguments [0]; }? – AtnNn
@atnnn 0, tất nhiên. – Phrogz