Computer >> Máy Tính >  >> Lập trình >> Javascript

Truyền số lượng đối số không xác định cho một hàm trong Javascript

Khi bạn gọi một hàm trong JavaScript, bạn có thể chuyển vào bất kỳ số lượng đối số nào. Không có giới hạn tham số chức năng. Điều này cũng có nghĩa là các hàm không thể được nạp chồng theo cách truyền thống trong js.

Đối tượng đối số là một biến cục bộ có sẵn trong tất cả các hàm không phải là mũi tên. Bạn có thể tham chiếu đến các đối số của một hàm bên trong hàm đó bằng cách sử dụng đối tượng đối số của nó. Nó có các mục nhập cho mỗi đối số mà hàm được gọi với, với chỉ mục của mục nhập đầu tiên là 0.

Ví dụ:nếu một hàm được truyền 3 đối số, bạn có thể truy cập chúng như sau -

arguments[0] // first argument
arguments[1] // second argument
arguments[2] // third argument

Lưu ý - các đối số là một đối tượng giống Mảng có thể truy cập bên trong các hàm chứa các giá trị của các đối số được truyền cho hàm đó. “Giống mảng” có nghĩa là các đối số có thuộc tính độ dài và các thuộc tính được lập chỉ mục từ 0, nhưng nó không có các phương thức tích hợp sẵn của Mảng như forEach () và map ().

Ví dụ:để chấp nhận một số lượng args tùy ý, bạn có thể tạo một hàm như sau -

Ví dụ

function printAllArguments(a, b) {
   console.log("First arg: " + a)
   console.log("Second arg: " + b)
   console.log("All args: " + arguments)
}
printAllArguments(1)
printAllArguments(1, "hello")
printAllArguments(1, "hello", 1, "hello")

Đầu ra

First arg: 1 
Second arg: undefined 
All args: {"0":1}
First arg: 1
Second arg: hello 
All args: {"0":1,"1":"hello"} 
First arg: 1
Second arg: hello 
All args: {"0":1,"1":"hello","2":1,"3":"hello"}