Đối tượng đối số trong JavaScript là một đối tượng dạng mảng có thể truy cập bên trong các hàm chứa các giá trị của đối số được truyền cho hàm đó. Nó rất hữu ích khi chúng ta muốn truy cập hoặc biết số lượng đối số đã được truyền cho một hàm
Trong bài viết này, chúng ta sẽ tìm hiểu về đối tượng arguments
này trong JavaScript với một số ví dụ thực tế. Hãy đi thẳng vào nó
Đối tượng arguments
là một biến cục bộ có sẵn trong tất cả các chức năng. Bạn có thể tham khảo đối số của hàm bên trong hàm bằng cách sử dụng đối tượng arguments
. Đối tượng này chứa một mục nhập cho mỗi đối số được truyền cho một hàm, điều này sẽ giúp chúng ta biết số lượng các đối số này và truy cập chúng bằng đối tượng đối số
Như chúng ta đã nói, đối tượng arguments
là một đối tượng giống như mảng, và đó là vì nó có thuộc tính độ dài. Vì vậy, chúng tôi có thể truy cập các giá trị riêng lẻ bằng cách sử dụng ký hiệu lập chỉ mục mảng arguments[i]
. Nhưng nó không có các phương thức dựng sẵn trong một mảng như
arguments[1] = 'new value';
0,arguments[1] = 'new value';
1,______0_______2 và arguments[1] = 'new value';
3Đây là một ví dụ về cách chúng ta có thể truy cập các đối số của một hàm với đối tượng arguments
function myFunction[a, b, c]{
console.log[arguments[0]]; // expected output: 1
console.log[arguments[1]]; // expected output: 2
console.log[arguments[2]]; // expected output: 3
}myFunction[1,2,3];
Đầu ra trong bảng điều khiển
Đầu ra bảng điều khiển
Như bạn có thể thấy, bằng cách sử dụng ký hiệu ngoặc như chúng ta làm với mảng, chúng ta có thể truy cập vào các đối số được truyền cho một hàm
Chúng tôi cũng có thể cung cấp các giá trị mới cho các đối số đó nếu chúng tôi muốn
arguments[1] = 'new value';
Chuyển đổi đối tượng arguments
thành một mảngĐối tượng arguments
không phải là một
arguments[1] = 'new value';
7. Nó tương tự như một arguments[1] = 'new value';
7, nhưng không có bất kỳ thuộc tính arguments[1] = 'new value';
7 nào ngoại trừ function myFunction[] {
return Array.prototype.slice.call[arguments];
}
myFunction[]; // Returns an array.
0. Tuy nhiên, nó có thể được chuyển đổi thành một mảng thực bằng cách sử dụng function myFunction[] {
return Array.prototype.slice.call[arguments];
}
myFunction[]; // Returns an array.
1Đây là một ví dụ
function myFunction[] {
return Array.prototype.slice.call[arguments];
}
myFunction[]; // Returns an array.
Đầu ra trong bảng điều khiển
Đầu ra bảng điều khiển
Bằng cách gọi hàm, chúng ta nhận được một mảng trống [độ dài. 0]
tham số còn lạiĐối tượng
function myFunction[] {
return Array.prototype.slice.call[arguments];
}
myFunction[]; // Returns an array.
2 không hoạt động trên các chức năng mũi tên ES6Hãy xem ví dụ dưới đây
function one[] {
return arguments;
}
const two = function [] {
return arguments;
}
const three = function three[] {
return arguments;
}
const four = [] => arguments;
four[]; // Throws an error - arguments is not defined
Khi chúng ta gọi hàm
function myFunction[] {
return Array.prototype.slice.call[arguments];
}
myFunction[]; // Returns an array.
3, nó sẽ báo lỗi. Tuy nhiên, chúng ta có thể giải quyết vấn đề này bằng cách sử dụng tham số còn lạiĐây là một ví dụ
const four = [...args] => args;
four[1,2,3];
// Returns: [1,2,3]
Như bạn có thể thấy, điều này sẽ tự động đặt tất cả các giá trị tham số vào một mảng
Đối tượng arguments
rất hữu ích và quan trọng cần biết trong JavaScript. Nó có các thuộc tính khác mà bạn có thể sử dụng, chỉ cần kiểm tra tài liệu nếu bạn quan tâm
Cảm ơn bạn đã đọc bài viết này, tôi hy vọng bạn thấy nó hữu ích
Đọc thêmNếu bạn quan tâm đến nội dung hữu ích hơn liên quan đến JavaScript và phát triển web, bạn cũng có thể Đăng ký nhận bản tin của chúng tôi. Chúng tôi sẽ không làm phiền bạn với email. Chỉ nội dung hữu ích cho bạn
Mẫu mã này, thường được sử dụng trong React, là một ý tưởng tốt hơn nhiều so với việc sử dụng các tham số chức năng truyền thống trong JS. Đây là lý do tại sao
Ảnh của Raimond Klavins trên Bapt
Có một thói quen xấu trong việc viết hàm mà tôi muốn đập tan, mặc dù đó là cách bạn học viết…