đối tượng JavaScript. Phương thức values[] được sử dụng để trả về một mảng có các phần tử là các giá trị thuộc tính có thể đếm được trên đối tượng. Thứ tự của các thuộc tính giống như thứ tự do đối tượng đưa ra theo cách thủ công nếu một vòng lặp được áp dụng cho các thuộc tính. Vật. các giá trị [] lấy đối tượng làm đối số trong đó các giá trị thuộc tính riêng có thể đếm được sẽ được trả về và trả về một mảng chứa tất cả các giá trị thuộc tính có thể đếm được của đối tượng đã cho
cú pháp.
Object.values[obj]
Thông số.
- đối tượng. Nó là đối tượng có vô số giá trị thuộc tính sẽ được trả về
Giá trị trả về. Vật. values[] trả về một mảng chứa tất cả các giá trị thuộc tính có thể đếm được của đối tượng đã cho.
Ví dụ về chức năng trên được cung cấp dưới đây
ví dụ 1. Trong ví dụ này, một mảng “kiểm tra” có ba giá trị thuộc tính [‘x’, ‘y’, ‘z’] và đối tượng. phương thức values[] trả về vô số giá trị thuộc tính của mảng này. Thứ tự của các thuộc tính giống như thứ tự được cung cấp bởi đối tượng theo cách thủ công.
jav
Array ["x", "y", "z"]0
Array ["x", "y", "z"]1
Array ["x", "y", "z"]2
Array ["x", "y", "z"]1
Array ["x", "y", "z"]4
Array ["x", "y", "z"]5
Array ["x", "y", "z"]0
Array ["x", "y", "z"]1
Array ["x", "y", "z"]2
Array ["x", "y", "z"]1
Array ["x", "y", "z"]4
Array ["x", "y", "z"]5
Array ["x", "y", "z"]1
Array ["x", "y", "z"]7
Array ["x", "y", "z"]8
đầu ra.
Array ["x", "y", "z"]
ví dụ 2. Trong ví dụ này, một đối tượng dạng mảng “kiểm tra” có ba giá trị thuộc tính { 0. ’23’, 1. 'chuyên viên máy tính', 2. 'true' } và đối tượng. phương thức values[] trả về vô số giá trị thuộc tính của mảng này. Thứ tự của các thuộc tính giống như thứ tự được cung cấp bởi đối tượng theo cách thủ công.
jav
Array ["x", "y", "z"]0
Array ["x", "y", "z"]1
Array ["x", "y", "z"]01
Array ["x", "y", "z"]1
Array ["x", "y", "z"]03
Array ["x", "y", "z"]1
Array ["x", "y", "z"]4
Array ["x", "y", "z"]06_______107
Array ["x", "y", "z"]08
Array ["x", "y", "z"]09
Array ["x", "y", "z"]60
Array ["x", "y", "z"]61
Array ["x", "y", "z"]62
Array ["x", "y", "z"]1
Array ["x", "y", "z"]64
Array ["x", "y", "z"]8
đầu ra.
Array ["x", "y", "z"]0
ví dụ 3. Trong ví dụ này, một đối tượng dạng mảng “kiểm tra” có ba giá trị thuộc tính { 70. 'x', 21. 'y', 35. 'z' } theo thứ tự ngẫu nhiên và đối tượng. Phương thức values[] trả về các giá trị thuộc tính có thể đếm được của mảng này theo thứ tự tăng dần của giá trị của các chỉ số
jav
Array ["x", "y", "z"]0
Array ["x", "y", "z"]1
Array ["x", "y", "z"]01
Array ["x", "y", "z"]1
Array ["x", "y", "z"]03
Array ["x", "y", "z"]1
Array ["x", "y", "z"]4
Array ["x", "y", "z"]03
Array ["x", "y", "z"]0
Array ["x", "y", "z"]05
Array ["x", "y", "z"]2
Array ["x", "y", "z"]07
Array ["x", "y", "z"]4
Array ["x", "y", "z"]62
Array ["x", "y", "z"]1
Array ["x", "y", "z"]11
Array ["x", "y", "z"]8
đầu ra.
Array ["x", "y", "z"]6
Các ứng dụng.
- Vật. các giá trị [] được sử dụng để trả về các giá trị thuộc tính có thể đếm được của một mảng đơn giản, đối tượng giống mảng và đối tượng giống mảng với thứ tự khóa ngẫu nhiên
ngoại lệ.
- Nó gây ra TypeError nếu đối số được truyền không phải là một đối tượng
- Nếu một đối tượng không được truyền làm đối số cho phương thức, thì nó sẽ thuyết phục nó và coi nó như một đối tượng
Chúng tôi có một danh sách đầy đủ các phương thức Đối tượng Javascript, để kiểm tra những phương thức đó, vui lòng xem qua bài viết Tham khảo đầy đủ về Đối tượng JavaScript này
Mọi người đều biết rằng việc tạo một đối tượng JavaScript theo nghĩa đen cũng đơn giản như. var foo = {}. Không có vấn đề gì cả. Trên thực tế, chúng ta thậm chí có thể thêm các thuộc tính và phương thức cho đối tượng này bằng các biểu thức như
1
foo. tên = "thanh"
hoặc…
1
2
3
foo. nói = hàm[]{
cảnh báo["đây là chức năng nói"];
}
Mặc dù các cách tiếp cận này đều đơn giản, nhưng có một sự khác biệt giữa một đối tượng theo nghĩa đen và một thể hiện của một lớp. Ví dụ: var foo = new Foo[] không hoàn toàn giống với var foo = {} trước đó của chúng ta. Câu hỏi là, chúng ta có thể có nó theo cả hai cách? . "Đúng. ”
Do bản chất rất biểu cảm của JavaScript, những gì chúng ta trả về từ một hàm thực sự phụ thuộc vào chúng ta. Vì vậy, nếu chúng ta muốn có một hàm xây dựng trả về một đối tượng theo nghĩa đen, chúng ta có thể theo nghĩa đen [xin lỗi. – ] chỉ cần sử dụng câu lệnh “return” và đặt một đối tượng ở phía bên kia của câu lệnh đó
Ví dụ #1 – Trả về một đối tượng đơn giản
1
2
3
4
5
6
7
8
9
10
var Foo = hàm[]{
trả về {
màu. "xanh lam",
nói. chức năng[]{
bảng điều khiển. log["đây là phương pháp say"];
}
}
}
var bar = mới Foo[];
thanh. nói[]; /
Trong ví dụ # 1, biến bar trở thành một thể hiện của hàm tạo Foo[] của chúng ta. Kết quả là, thanh là một đối tượng theo nghĩa đen. Khi chúng ta chạy phương thức say[] của nó, chúng ta sẽ nhận được đầu ra như mong đợi và nếu chúng ta chạy lệnh sau. bảng điều khiển. nhật ký [thanh. màu sắc], chúng ta sẽ nhận được "màu xanh". Nhưng thực sự không có nhiều giá trị gia tăng ở đây. Tất nhiên, chúng ta có thể đạt được kết quả cuối cùng tương tự bằng cách nói đơn giản var bar = {} và bao gồm các thuộc tính và phương thức chính xác giống nhau
Nhưng trên thực tế, có tiềm năng lớn cho một số giá trị gia tăng khá nghiêm trọng ở đây. Ví dụ: sự khác biệt giữa việc chỉ gán một đối tượng theo nghĩa đen cho thanh và trả về một đối tượng theo nghĩa đen từ lớp Foo[] của chúng ta là khi chúng ta khởi tạo Foo[], chúng ta sẽ có quyền truy cập vào hàm bên ngoài. Việc đóng này cung cấp một phạm vi trong đó chúng tôi có thể lưu trữ các thành viên riêng tư, để truy cập sau này nếu chúng tôi muốn, điều này rất quan trọng
Ví dụ #2 – Trả về một đối tượng bằng một phương thức đặc quyền
1
2
3
4
5
6
7
8
9
10
11
12
13
var Foo = hàm[]{
var _acctNum = '';
trả về {
getAcctNum. chức năng[]{
return _acctNum;
},
setAcctNum. hàm[newAcctNum]{
_acctNum = newAcctNum;
}
}
}
var bar = mới Foo[];
Trong ví dụ #2, chúng ta vẫn trả về một đối tượng theo nghĩa đen, và kết quả là, thể hiện kết quả chỉ là một đối tượng theo nghĩa đen. Giá trị gia tăng là chúng tôi cũng đã xác định một biến riêng tư. _acctNum. Trên thực tế, chuyển sang một cấp độ chức năng mới. biến _acctNum không khả dụng với thế giới bên ngoài. Do đó, chúng tôi có toàn quyền kiểm soát cách nó bị đột biến. Ở đây chúng ta đã định nghĩa hai phương thức _getAcctNum và _SetAcctNum. Do đó, những thành viên đặc quyền này có quyền truy cập vào biến riêng tư _acctNum của chúng tôi. Vì vậy, điều quan trọng nhất là chúng ta có thể thay đổi hoặc truy xuất giá trị của _acctNum bằng hai phương thức đặc quyền này
Cuối cùng, chúng ta có thể làm như sau
1
2
3
thanh. getAcctNum[] // chuỗi rỗng
thanh. setAcctNum["123456"]
thanh. getAcctNum[] // "123456"
Tóm lược
Giá trị gia tăng của việc trả về một đối tượng bằng chữ từ hàm tạo là trong khi bạn có một bảng băm rất đơn giản để làm việc với tư cách là cá thể của mình, bạn cũng có quyền truy cập vào các biến riêng được xác định trong hàm tạo. Do đó, trong trường hợp này, bạn có thể coi giá trị trả về là bar = {}, nhưng với giá trị gia tăng