Trong bài viết này, chúng ta sẽ tìm hiểu chi tiết về đối tượng đối số trong JavaScript. Giống như đối tượng đối số trong JavaScript là gì và sau đó chúng ta sẽ thảo luận về một số chương trình sử dụng đối tượng đối số
Chúng ta sẽ thảo luận về những điểm sau
- Đối số trong JavaScript là gì?
- Các chương trình liên quan đến đối tượng đối số
Các đối số là một đối tượng cục bộ của một hàm. Bạn có thể coi nó như một biến cục bộ có sẵn với tất cả các hàm theo mặc định ngoại trừ các hàm mũi tên trong JavaScript.
Đối tượng này [đối số] được sử dụng để truy cập tham số được truyền cho hàm. Nó chỉ có sẵn trong một chức năng. Chúng tôi không thể truy cập nó bên ngoài chức năng. Đối tượng đối số cho phép bạn truy cập tất cả các đối số được truyền cho một hàm. Chúng ta có thể truy cập các đối số này bằng cách sử dụng các chỉ mục
Thí dụ. Hãy hiểu các đối số với một ví dụ đơn giản
Javascript
arguments[0]5
arguments[0]6
arguments[0]0
arguments[0]1
arguments[0]2____03
arguments[0]6
arguments[0]5
arguments[0]6
arguments[0]6
arguments[0]8____09
undefined0
undefined1
đầu ra.
arguments[0]0
Giải trình. Trong ví dụ này, chúng tôi đang chuyển “GFG” làm tham số cho hàm hello[]. Như chúng ta biết, chúng ta có thể truy cập tham số được truyền cho hàm bằng cách sử dụng đối tượng đối số với sự trợ giúp của chỉ mục. Nó tương tự như việc truy cập các phần tử mảng bằng cách sử dụng các chỉ mục
Vì chúng ta chỉ truyền một tham số cho hàm hello[] nên tham số này sẽ được đặt ở chỉ mục 0. Chúng ta có thể truy cập nó bằng cú pháp sau
arguments[0]
Thí dụ. Xem xét ví dụ sau
Javascript
arguments[0]5
arguments[0]6
arguments[0]0
arguments[0]1
arguments[0]2____87
arguments[0]6
arguments[0]5
arguments[0]6
arguments[0]6
arguments[0]8____09
undefined0
undefined1
đầu ra.
Giải trình. Đầu ra của ví dụ trên không được xác định bởi vì chúng ta chỉ truyền một tham số cho hàm hello[] sẽ nằm ở chỉ mục thứ 0. Nhưng ở đây chúng tôi đang truy cập đối số [1] không khả dụng. Vì vậy, nó cho đầu ra là không xác định.
Thí dụ. Để xử lý tình trạng trên, chúng ta cần truyền 2 tham số cho hàm hello[] thì hàm mới cho kết quả chính xác
Javascript
arguments[0]5
arguments[0]6
arguments[0]0
arguments[0]1
arguments[0]2____87
arguments[0]6
arguments[0]5
arguments[0]6
arguments[0]6
arguments[0]8______09
arguments[0]18
arguments[0]19
undefined0
undefined1
đầu ra
arguments[0]5
Thí dụ. Các chương trình sử dụng đối tượng đối số
Javascript
arguments[0]5
arguments[0]6
arguments[0]64
arguments[0]65
________ 56 ________ 364 ________ 368
arguments[0]6
arguments[0]00
arguments[0]6
arguments[0]6
arguments[0]0
arguments[0]04
arguments[0]2____364
arguments[0]07
arguments[0]2____409
arguments[0]90
arguments[0]6
arguments[0]5
arguments[0]6
arguments[0]6
arguments[0]95
undefined1
đầu ra
arguments[0]1
Giải trình. Hầu hết các sinh viên sẽ nghĩ rằng đầu ra phải là 4. Bởi vì chúng ta đang chuyển n=3 làm tham số cho hàm func và đối số [0] = 1 vì tại chỉ mục thứ 0 của mảng đối số, chúng ta có 1. Vậy kết quả sẽ là [3+1] = 4. Nhưng đây không phải là một đầu ra chính xác. Đầu ra đúng là 6. Như chúng ta đã thảo luận trước đó, đối tượng đối số là cục bộ của một hàm được sử dụng để truy cập các tham số được truyền cho nó
Vì chúng tôi đang chuyển n=3 làm tham số. Vì vậy, bên trong đối tượng đối số, chúng ta chỉ có một biến duy nhất là 3. Và n=3 vì chúng ta đang chuyển giá trị 3 cho hàm func. Vì vậy, đối số [0] = 3 [đối số này không nằm ngoài mảng, nhưng nó là đối tượng đối số cục bộ cho bất kỳ hàm không mũi tên nào] và n = 3