Những gì bên trong một đối tượng javascript?
Bạn có thể gọi một hàm bên trong một đối tượng bằng cách khai báo hàm đó như một thuộc tính trên đối tượng và gọi nó, e. g. 7. Thuộc tính của một đối tượng có thể trỏ đến một hàm, giống như nó có thể trỏ đến một chuỗi, số hoặc các giá trị khác Show
Chúng tôi đã khai báo một thuộc tính 8 trên một đối tượng. Thuộc tính trỏ đến một chức năngChúng ta có thể truy cập thuộc tính của đối tượng bằng cách sử dụng ký hiệu dấu chấm 9 hoặc dấu ngoặc 00 để gọi hàmChúng tôi đã sử dụng thuộc tính tốc ký để xác định chức năng trong đối tượng Khi đọc mã cũ hơn, bạn có thể thấy cách tiếp cận dài dòng và lỗi thời hơn đang được sử dụng Cách tiếp cận đầu tiên ngắn gọn hơn và dễ đọc hơn Bạn có thể sử dụng từ khóa 01 để truy cập các thuộc tính của đối tượng bên trong hàmTrong ngữ cảnh cụ thể này, từ khóa 01 đề cập đến đối tượngBạn cũng có thể thêm một chức năng vào đối tượng sau khi nó đã được khai báo Lưu ý rằng chúng tôi đã sử dụng từ khóa 03 để xác định chức năng. Nếu chúng ta sử dụng hàm mũi tên, thì giá trị của từ khóa 01 sẽ không bị ràng buộc chính xác và sẽ trỏ đến phạm vi kèm theo (không phải đối tượng)Các hàm mũi tên không có từ khóa 01 của riêng chúng như các hàm được đặt tên. Thay vào đó, các hàm mũi tên sử dụng ngữ cảnh 01 của phạm vi kèm theo Như chúng ta đã biết từ chương Kiểu dữ liệu, có tám kiểu dữ liệu trong JavaScript. Bảy trong số chúng được gọi là "nguyên thủy", bởi vì giá trị của chúng chỉ chứa một thứ duy nhất (có thể là một chuỗi hoặc một số hoặc bất cứ thứ gì) Ngược lại, các đối tượng được sử dụng để lưu trữ các bộ sưu tập có khóa gồm nhiều dữ liệu khác nhau và các thực thể phức tạp hơn. Trong JavaScript, các đối tượng thâm nhập vào hầu hết mọi khía cạnh của ngôn ngữ. Vì vậy, chúng ta phải hiểu chúng trước khi đi sâu vào bất cứ nơi nào khác Một đối tượng có thể được tạo bằng dấu ngoặc nhọn 2 với danh sách thuộc tính tùy chọn. Thuộc tính là “chìa khóa. value”, trong đó 3 là một chuỗi (còn được gọi là “tên thuộc tính”) và 4 có thể là bất kỳ thứ gìChúng ta có thể tưởng tượng một đối tượng như một chiếc tủ chứa các tệp đã ký. Mỗi phần dữ liệu được lưu trữ trong tệp của nó bằng khóa. Thật dễ dàng để tìm một tệp theo tên của nó hoặc thêm/xóa tệp Một đối tượng trống (“tủ trống”) có thể được tạo bằng một trong hai cú pháp
Thông thường, các dấu ngoặc đơn 5 được sử dụng. Tuyên bố đó được gọi là một đối tượng theo nghĩa đenNghĩa đen và tính chấtChúng ta có thể ngay lập tức đặt một số thuộc tính vào 5 như “khóa. cặp giá trị
Một thuộc tính có một khóa (còn được gọi là “tên” hoặc “số nhận dạng”) trước dấu hai chấm 7 và một giá trị ở bên phải của nóTrong đối tượng 8 có hai thuộc tính
Đối tượng 8 kết quả có thể được tưởng tượng như một chiếc tủ có hai tệp được ký có nhãn “tên” và “tuổi”Chúng tôi có thể thêm, xóa và đọc các tệp từ nó bất cứ lúc nào Giá trị thuộc tính có thể truy cập được bằng cách sử dụng ký hiệu dấu chấm 4Giá trị có thể thuộc bất kỳ loại nào. Hãy thêm một boolean
Để xóa một thuộc tính, chúng ta có thể sử dụng toán tử 04 0Chúng tôi cũng có thể sử dụng tên thuộc tính nhiều từ, nhưng sau đó chúng phải được trích dẫn 8Thuộc tính cuối cùng trong danh sách có thể kết thúc bằng dấu phẩy 9Đó được gọi là dấu phẩy “dấu” hoặc “treo”. Làm cho việc thêm/xóa/di chuyển xung quanh các thuộc tính trở nên dễ dàng hơn vì tất cả các dòng đều giống nhau Dấu ngoặc vuôngĐối với thuộc tính nhiều từ, quyền truy cập dấu chấm không hoạt động 0JavaScript không hiểu điều đó. Nó nghĩ rằng chúng tôi giải quyết 05 và sau đó đưa ra lỗi cú pháp khi gặp phải 06 không mong muốnDấu chấm yêu cầu khóa phải là mã định danh biến hợp lệ. Điều đó ngụ ý. không chứa khoảng trắng, không bắt đầu bằng một chữ số và không bao gồm các ký tự đặc biệt (cho phép ____107 và ____108) Có một "ký hiệu dấu ngoặc vuông" thay thế hoạt động với bất kỳ chuỗi nào 5Bây giờ mọi thứ đều ổn. Xin lưu ý rằng chuỗi bên trong dấu ngoặc được trích dẫn chính xác (bất kỳ loại trích dẫn nào cũng được) Dấu ngoặc vuông cũng cung cấp một cách để lấy tên thuộc tính là kết quả của bất kỳ biểu thức nào – trái ngược với một chuỗi ký tự – như từ một biến như sau 6Ở đây, biến 3 có thể được tính trong thời gian chạy hoặc phụ thuộc vào đầu vào của người dùng. Và sau đó chúng tôi sử dụng nó để truy cập tài sản. Điều đó mang lại cho chúng tôi rất nhiều sự linh hoạtVí dụ 0Ký hiệu dấu chấm không thể được sử dụng theo cách tương tự 1Thuộc tính tính toánChúng ta có thể sử dụng dấu ngoặc vuông trong một đối tượng bằng chữ, khi tạo một đối tượng. Đó được gọi là thuộc tính được tính toán Ví dụ 2Ý nghĩa của một thuộc tính được tính toán rất đơn giản. 80 có nghĩa là tên tài sản nên được lấy từ 81Vì vậy, nếu một khách truy cập vào 82, thì 83 sẽ trở thành 84Về cơ bản, nó hoạt động giống như 3…Nhưng trông đẹp hơn Chúng ta có thể sử dụng các biểu thức phức tạp hơn bên trong dấu ngoặc vuông 4Dấu ngoặc vuông mạnh hơn nhiều so với ký hiệu dấu chấm. Họ cho phép mọi tên thuộc tính và biến. Nhưng chúng cũng rườm rà hơn để viết Vì vậy, hầu hết thời gian, khi tên thuộc tính được biết và đơn giản, dấu chấm được sử dụng. Và nếu chúng ta cần một cái gì đó phức tạp hơn, thì chúng ta chuyển sang dấu ngoặc vuông giá trị tài sản viết tắtTrong mã thực, chúng tôi thường sử dụng các biến hiện có làm giá trị cho tên thuộc tính Ví dụ 5Trong ví dụ trên, các thuộc tính có cùng tên với các biến. Trường hợp sử dụng để tạo một thuộc tính từ một biến phổ biến đến mức có một cách viết tắt giá trị thuộc tính đặc biệt để làm cho nó ngắn hơn Thay vì 85, chúng ta chỉ có thể viết 86, như thế này 6Chúng ta có thể sử dụng cả thuộc tính thông thường và tốc ký trong cùng một đối tượng 7Giới hạn tên thuộc tínhNhư chúng ta đã biết, một biến không thể có tên bằng một trong các từ dành riêng cho ngôn ngữ như “for”, “let”, “return” v.v. Nhưng đối với một thuộc tính đối tượng, không có giới hạn nào như vậy 8Nói tóm lại, không có giới hạn về tên tài sản. Chúng có thể là bất kỳ chuỗi hoặc ký hiệu nào (một loại đặc biệt cho số nhận dạng, sẽ được đề cập sau) Các loại khác được tự động chuyển đổi thành chuỗi Chẳng hạn, một số 87 trở thành một chuỗi 88 khi được sử dụng làm khóa thuộc tính 9Có một vấn đề nhỏ với thuộc tính đặc biệt tên là 89. Chúng tôi không thể đặt nó thành một giá trị phi đối tượng 40Như chúng ta thấy từ mã, việc gán cho một 90 nguyên thủy bị bỏ quaChúng tôi sẽ đề cập đến bản chất đặc biệt của 89 trong các chương tiếp theo và đề xuất các cách khắc phục hành vi đóKiểm tra sự tồn tại của thuộc tính, toán tử “in”Một tính năng đáng chú ý của các đối tượng trong JavaScript, so với nhiều ngôn ngữ khác, là có thể truy cập bất kỳ thuộc tính nào. Sẽ không có lỗi nếu thuộc tính không tồn tại Đọc thuộc tính không tồn tại chỉ trả về 92. Vì vậy, chúng tôi có thể dễ dàng kiểm tra xem thuộc tính có tồn tại hay không 41Ngoài ra còn có một nhà điều hành đặc biệt 93 cho điều đóCú pháp là 42Ví dụ 43Xin lưu ý rằng ở phía bên trái của 94 phải có tên tài sản. Đó thường là một chuỗi trích dẫnNếu chúng ta bỏ qua dấu ngoặc kép, điều đó có nghĩa là một biến phải chứa tên thật cần kiểm tra. Ví dụ 44Tại sao toán tử 94 tồn tại? Chà, hầu hết thời gian so sánh với 92 hoạt động tốt. Nhưng có một trường hợp đặc biệt khi nó bị lỗi, nhưng 93 vẫn hoạt động bình thườngĐó là khi một thuộc tính đối tượng tồn tại, nhưng lưu trữ 92 45Trong đoạn mã trên, thuộc tính 00 tồn tại về mặt kỹ thuật. Vì vậy, toán tử 94 hoạt động đúngNhững tình huống như thế này rất hiếm khi xảy ra, bởi vì 92 không nên được chỉ định một cách rõ ràng. Chúng tôi chủ yếu sử dụng 03 cho các giá trị "không xác định" hoặc "trống". Vì vậy, toán tử 94 là một vị khách kỳ lạ trong mãCái "cho. trong vòng lặpĐể duyệt qua tất cả các phím của một đối tượng, tồn tại một dạng vòng lặp đặc biệt. 05. Đây là một thứ hoàn toàn khác với cấu trúc 06 mà chúng ta đã nghiên cứu trước đâycú pháp 46Chẳng hạn, hãy xuất tất cả các thuộc tính của 8 47Lưu ý rằng tất cả các cấu trúc “for” đều cho phép chúng ta khai báo biến vòng lặp bên trong vòng lặp, chẳng hạn như 08 ở đâyNgoài ra, chúng ta có thể sử dụng một tên biến khác ở đây thay vì 3. Chẳng hạn, 50 cũng được sử dụng rộng rãiĐặt hàng như một đối tượngCác đối tượng có được sắp xếp không? Câu trả lời ngắn gọn là. “đặt hàng theo cách đặc biệt”. các thuộc tính số nguyên được sắp xếp, các thuộc tính khác xuất hiện theo thứ tự tạo. các chi tiết sau Ví dụ: hãy xem xét một đối tượng có mã điện thoại 48Đối tượng có thể được sử dụng để đề xuất danh sách các tùy chọn cho người dùng. Nếu chúng tôi đang tạo một trang web chủ yếu dành cho khán giả Đức thì có lẽ chúng tôi muốn 51 là trang đầu tiênNhưng nếu chúng tôi chạy mã, chúng tôi sẽ thấy một bức tranh hoàn toàn khác
Mã điện thoại được sắp xếp theo thứ tự tăng dần vì chúng là số nguyên. Vì vậy, chúng tôi thấy 52Tính chất số nguyên? Thuật ngữ “thuộc tính số nguyên” ở đây có nghĩa là một chuỗi có thể được chuyển đổi sang và từ một số nguyên mà không cần thay đổi Vì vậy, 53 là một tên thuộc tính số nguyên, bởi vì khi nó được chuyển đổi thành một số nguyên và ngược lại, nó vẫn như vậy. Nhưng 54 và 55 thì không 49…Mặt khác, nếu các khóa không phải là số nguyên, thì chúng được liệt kê theo thứ tự tạo chẳng hạn 0Vì vậy, để khắc phục sự cố với mã điện thoại, chúng ta có thể “ăn gian” bằng cách làm cho mã không nguyên. Thêm dấu cộng 56 trước mỗi mã là đủNhư thế này 1Bây giờ nó hoạt động như dự định Bản tóm tắtCác đối tượng là các mảng kết hợp với một số tính năng đặc biệt Chúng lưu trữ các thuộc tính (cặp khóa-giá trị), trong đó
Để truy cập một thuộc tính, chúng ta có thể sử dụng
Toán tử bổ sung
Những gì chúng ta đã nghiên cứu trong chương này được gọi là “đối tượng đơn giản”, hoặc chỉ 63Có nhiều loại đối tượng khác trong JavaScript
Chúng có những tính năng đặc biệt nào mà chúng ta sẽ nghiên cứu sau. Đôi khi mọi người nói điều gì đó như "Kiểu mảng" hoặc "Kiểu ngày", nhưng về mặt hình thức, chúng không phải là kiểu của riêng chúng mà thuộc về một kiểu dữ liệu "đối tượng" duy nhất. Và họ mở rộng nó theo nhiều cách khác nhau Các đối tượng trong JavaScript rất mạnh. Ở đây chúng ta vừa vạch ra bề nổi của một chủ đề thực sự lớn. Chúng ta sẽ làm việc chặt chẽ với các đối tượng và tìm hiểu thêm về chúng trong các phần tiếp theo của hướng dẫn Một đối tượng chứa gì trong JavaScript?Một đối tượng Javascript chứa cặp khóa-giá trị xác định duy nhất các thuộc tính và phương thức của nó . Thuộc tính có thể là bất kỳ loại dữ liệu Javascript hợp lệ nào; .
Làm thế nào bạn có thể nói những gì bên trong một đối tượng đối tượng?Bạn có thể xem nội dung của một đối tượng bằng bảng điều khiển. nhật ký(), JSON. stringify(), hoặc vòng lặp for…in. . Log to console with console. log( Stringify it with JSON. stringify( Sử dụng vòng lặp for…in và xem xét từng thuộc tính riêng lẻ Đối tượng bên trong là gì?Các đối tượng bên trong của phân tâm học đóng vai trò là những quy chiếu bên trong, kim chỉ nam cho các mối quan hệ giữa các cá nhân và góp phần tạo nên quyền tự chủ tương đối của con người . Các đối tượng bên trong tương tự như một con quay hồi chuyển bên trong.
Cái này bên trong một lớp trong JavaScript là gì?Giá trị này khác nhau trong từng ngữ cảnh. Các hàm tạo của lớp luôn được gọi với new , vì vậy hành vi của chúng giống như các hàm tạo của hàm. giá trị này là phiên bản mới đang được tạo . Các phương thức của lớp hoạt động giống như các phương thức trong nghĩa đen của đối tượng - giá trị this là đối tượng mà phương thức được truy cập trên đó. |