Các đối tượng có đúng trong JavaScript không?

Gần như mọi thứ trong JavaScript là một đối tượng trừ sáu thứ không phải là đối tượng —

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
6,
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
7, chuỗi, số, boolean và ký hiệu. Chúng được gọi là giá trị nguyên thủy hoặc kiểu nguyên thủy

Bất cứ thứ gì không phải là giá trị nguyên thủy đều là Đối tượng. Điều đó bao gồm các mảng, hàm, hàm tạo và chính các đối tượng

Đúng. Hàm và mảng cũng là đối tượng như chúng ta sẽ thấy ở phần sau của bài viết

Các đối tượng

Về mặt khái niệm, các Đối tượng giống nhau trong tất cả các ngôn ngữ lập trình tôi. e chúng đại diện cho những thứ trong thế giới thực mà chúng ta muốn đại diện bên trong chương trình của mình bằng các đặc điểm/thuộc tính và phương thức

Ví dụ: nếu đối tượng của bạn là sinh viên, nó sẽ có các thuộc tính như tên, tuổi, địa chỉ, id, v.v. và các phương thức như

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
8,
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
9 v.v.

Trong JavaScript, hãy nghĩ về một đối tượng dưới dạng một danh sách chứa các mục và mỗi mục (một thuộc tính hoặc một phương thức) trong danh sách được lưu trữ bởi một cặp khóa-giá trị trong bộ nhớ dưới dạng tham chiếu

Hãy xem một ví dụ đối tượng

const firstObj = {
1: "deepak",
"age": 28
}

const newObj = new Object();
newObj.name = ‘Deepak’;
newObj.location = ‘Delhi, India’;
0 là một đối tượng có 2 thuộc tính 1 và tuổi và giá trị là
const newObj = new Object();
newObj.name = ‘Deepak’;
newObj.location = ‘Delhi, India’;
1 và
const newObj = new Object();
newObj.name = ‘Deepak’;
newObj.location = ‘Delhi, India’;
2

Các đối tượng JavaScript hơi khác nhau theo cách chúng được tạo. Không có yêu cầu đối với một

const newObj = new Object();
newObj.name = ‘Deepak’;
newObj.location = ‘Delhi, India’;
3 như vậy và có thể được khai báo bằng cách sử dụng ký hiệu chữ

Tạo đối tượng

Chúng ta có thể tạo các đối tượng theo nhiều cách trong javascript, hãy xem xét từng cách trong số chúng

  1. const newObj = new Object();
    newObj.name = ‘Deepak’;
    newObj.location = ‘Delhi, India’;
    4 (D\cách trực tiếp). Đối tượng chữ là một danh sách các cặp khóa-giá trị được phân tách bằng dấu phẩy được đặt trong dấu ngoặc nhọn. Các giá trị thuộc tính ký tự đối tượng có thể thuộc bất kỳ loại dữ liệu nào, bao gồm ký tự mảng, hàm, ký tự đối tượng lồng nhau hoặc kiểu dữ liệu nguyên thủy
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
0

Ghi chú. Các khóa đối tượng sinh viên ở trên có thể được truy cập thông qua ký hiệu Dấu chấm i. e

const newObj = new Object();
newObj.name = ‘Deepak’;
newObj.location = ‘Delhi, India’;
5,
const newObj = new Object();
newObj.name = ‘Deepak’;
newObj.location = ‘Delhi, India’;
6 hoặc thông qua ký hiệu ngoặc vuông i. e
const newObj = new Object();
newObj.name = ‘Deepak’;
newObj.location = ‘Delhi, India’;
7,
const newObj = new Object();
newObj.name = ‘Deepak’;
newObj.location = ‘Delhi, India’;
8, v.v.

2.

const newObj = new Object();
newObj.name = ‘Deepak’;
newObj.location = ‘Delhi, India’;
9. phương thức tạo một đối tượng mới với nguyên mẫu và thuộc tính được chỉ định của đối tượng cũ

Ghi chú. Theo mặc định, mọi hàm JavaScript đều có thuộc tính đối tượng

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
60 (theo mặc định, thuộc tính này trống). Các phương thức hoặc thuộc tính có thể được gắn vào thuộc tính này

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain

Dưới đây là đầu ra của đối tượng

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
61

Đối tượng trong Javascript

Bây giờ chúng ta có thể thêm các thuộc tính và dữ liệu mới vào đối tượng

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
62 bằng phương pháp chúng ta đang học ở đây

Ghi chú.

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
62sẽ có quyền truy cập vào các khóa và giá trị của đối tượng
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
64 gốc vì nó được thêm vào chuỗi nguyên mẫu
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
62 và đây là một cách chúng tôi thực hiện kế thừa trong javascript. Nghĩa là,
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
66 sẽ lưu trữ một liên kết đến đối tượng
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
67. Đối tượng cha này cũng được tham khảo khi một thuộc tính được đọc

Cha mẹ có thể có cha mẹ, v.v. Điều này được lặp lại cho đến khi chúng ta đạt được một đối tượng không có cha mẹ nào. cha mẹ là

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
68

3.

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
69. Việc sử dụng
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
70constructor kết hợp với từ khóa “
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
71” cho phép chúng ta khởi tạo các đối tượng mới

Hãy xem qua một ví dụ

const newObj = new Object();
newObj.name = ‘Deepak’;
newObj.location = ‘Delhi, India’;

Tuy nhiên, phương pháp sử dụng

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
72 ở trên không phù hợp lắm với các chương trình yêu cầu tạo nhiều đối tượng cùng loại, vì nó sẽ liên quan đến việc viết lặp đi lặp lại các dòng mã trên cho từng đối tượng đó

Để đối phó với vấn đề này, chúng ta có thể sử dụng phương pháp tiếp theo

4.

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
73. Trình xây dựng có thể hữu ích khi chúng ta cần một cách để tạo một “loại” đối tượng có thể được sử dụng nhiều lần mà không cần phải xác định lại đối tượng mỗi lần và điều này có thể đạt được bằng cách sử dụng hàm Trình xây dựng đối tượng

Hãy xem qua một ví dụ

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
6

Chúng tôi đã tạo hai đối tượng có cùng thuộc tính nhưng có giá trị khác nhau

5.

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
74. đây là một phương pháp khác để tạo một đối tượng mới từ các đối tượng khác

Ghi chú. Chúng tôi sẽ đề cập đến quyền sở hữu / quyền sở hữu trong phần tiếp theo, vì vậy hãy chịu đựng điều này với tôi

Nó sao chép các giá trị của tất cả các thuộc tính riêng có thể đếm được từ một hoặc nhiều đối tượng nguồn sang đối tượng đích. Nó sẽ trả về đối tượng mục tiêu. Hãy hiểu bằng một ví dụ

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
7

Có rất nhiều trường hợp sử dụng cho

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
74 như Nhân bản đối tượng, Hợp nhất các đối tượng, v.v.

6.

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
76. Phương thức chuyển đổi danh sách các cặp khóa-giá trị thành một đối tượng. Hãy xem qua một ví dụ

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
7

Ghi chú. Cách tốt nhất để tạo các đối tượng là thông qua ký hiệu Nghĩa đen vì nó chiếm ít không gian hơn trong mã nguồn. Có thể nhận biết rõ ràng điều gì đang xảy ra, vì vậy khi sử dụng

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
72, bạn thực sự chỉ cần gõ nhiều hơn và (về lý thuyết, nếu không được tối ưu hóa bởi công cụ JavaScript) thực hiện một lệnh gọi hàm không cần thiết. Ngoài ra, ký hiệu chữ tạo đối tượng và gán thuộc tính trong cùng một dòng mã, điều này không xảy ra với những người khác

Cách thêm/cập nhật và xóa thuộc tính của một đối tượng

Các thuộc tính cho một đối tượng có thể được thêm thông qua ký hiệu dấu chấm hoặc dấu ngoặc như đã thảo luận trước đó. Hãy xem xét một ví dụ

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
9

Ở đây,

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
78 và
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
79 là các thuộc tính của đối tượng

Một đối tượng chỉ có thể chứa một khóa duy nhất với một giá trị. Chúng tôi không thể có một khóa duy nhất có hai giá trị khác nhau

Tên thuộc tính có thể là một chuỗi hoặc một số hoặc ký tự đặc biệt hoặc thuộc tính động, nhưng nếu tên thuộc tính không phải là một chuỗi thì nó phải được truy cập bằng ký hiệu ngoặc. Vì vậy, nếu chúng ta cần truy cập thuộc tính

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
70 trong ví dụ trên, chúng ta có thể thực hiện
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
71 nhưng
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
72 sẽ trả về lỗi cú pháp. Tuy nhiên, trường hợp tài sản tôi. e
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
73 hoặc
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
74 sẽ hoạt động

const firstObj = {
1: "deepak",
"age": 28
}
7

Để cập nhật một thuộc tính, chúng ta có thể sử dụng lại cả hai loại ký hiệu trên. Nếu chúng tôi thêm giá trị vào các thuộc tính đã được tạo thì giá trị được cập nhật khác được tạo

const firstObj = {
1: "deepak",
"age": 28
}
8

Ở trên sẽ cập nhật giá trị thành phố từ

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
75 đến
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
76

Chúng ta cũng có thể tạo và cập nhật các thuộc tính cho một đối tượng thông qua các phương thức hàm

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
70 như
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
78 hoặc
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
79

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
00

Để xóa một thuộc tính của một đối tượng, chúng ta có thể sử dụng từ khóa

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
90 và chúng ta có thể sử dụng cả hai ký hiệu để làm như vậy

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
01

Giá trị trả về

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
90 là
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
92 nếu thuộc tính đã được xóa thành công. Nếu không, nó sẽ là
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
93

Bạn có biết cách không cho phép cập nhật hoặc xóa thuộc tính không?

Làm cách nào để lặp lại các thuộc tính đối tượng?

Sẽ có một tình huống trong khi mã hóa thực tế mà chúng tôi muốn truy cập tất cả các cặp khóa-giá trị đối tượng

Sử dụng Vòng lặp — vòng lặp for in và for of

Trong trường hợp for in, nó lặp lại một đối tượng và trả về từng thuộc tính một

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
02

Khóa sẽ có tất cả các thuộc tính từng cái một và

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
94 sẽ trả về giá trị. Vòng lặp for cũng lặp qua chuỗi nguyên mẫu và cũng sẽ trả về các khóa chính, vì vậy đừng ngạc nhiên nếu bạn thấy nhiều khóa hơn. Để tránh nhìn thấy nhiều khóa hơn, chúng tôi có thể thực hiện kiểm tra ____395 để chỉ nhận các khóa đối tượng hiện tại

Trong trường hợp for of, nó lặp đi lặp lại lặp đi lặp lại trên các đối tượng có thể lặp lại. Để đọc thêm tại đây

Có nhiều phương thức khác nhau trong hàm Đối tượng giúp truy cập các thuộc tính và giá trị của đối tượng, không phải chuỗi nguyên mẫu

  1. // syntax - Object.create(prototype[, propertiesObject])
    var newStudent = Object.create(student);
    // this create a new object with old object added in its prototype // chain
    96 hoặc
    // syntax - Object.create(prototype[, propertiesObject])
    var newStudent = Object.create(student);
    // this create a new object with old object added in its prototype // chain
    97. Trả về một mảng các khóa chuỗi
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
03

2.

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
98. Trả về một mảng các giá trị

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
04

3.

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
99. Trả về một mảng gồm
const firstObj = {
1: "deepak",
"age": 28
}
70 cặp

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
05

Từ những gì chúng ta thấy ở trên, thứ tự xuất hiện của các thuộc tính không cố định trong một đối tượng

Cách kiểm tra sự tồn tại của các thuộc tính trong một đối tượng

Có ba cách để kiểm tra thuộc tính có tồn tại trong một đối tượng hay không

  1. Sử dụng
    const firstObj = {
    1: "deepak",
    "age": 28
    }
    71. Phương thức này trả về một giá trị boolean cho biết liệu đối tượng có thuộc tính được chỉ định làm thuộc tính riêng của nó hay không, không phải thuộc tính gốc/kế thừa
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
06

Ghi chú.

const firstObj = {
1: "deepak",
"age": 28
}
72 trả về true ngay cả khi giá trị của thuộc tính là
const firstObj = {
1: "deepak",
"age": 28
}
73 hoặc
const firstObj = {
1: "deepak",
"age": 28
}
74

Nếu chúng ta có

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
95 làm tên thuộc tính trong một đối tượng thì sao?

2. Sử dụng toán tử in — Toán tử

const firstObj = {
1: "deepak",
"age": 28
}
76 trả về
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
92 nếu thuộc tính đã chỉ định nằm trong đối tượng đã chỉ định hoặc chuỗi nguyên mẫu của nó i. e bên trong cha mẹ của nó

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
07

Ghi chú.

const firstObj = {
1: "deepak",
"age": 28
}
72 chỉ kiểm tra thuộc tính đối tượng hiện tại trong khi toán tử
const firstObj = {
1: "deepak",
"age": 28
}
79 kiểm tra thuộc tính hiện tại + cha mẹ

3. Sử dụng chức năng tùy chỉnh

Có nhiều cách khác nhau để kiểm tra xem một thuộc tính có tồn tại hay không thông qua một phương thức tùy chỉnh. Một trong số đó là thông qua

const firstObj = {
1: "deepak",
"age": 28
}
80Ví dụ

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
08

Bình luận xuống bên dưới phương pháp tùy chỉnh của bạn để làm điều tương tự 😃

Sao chép theo tham chiếu/chia sẻ và sao chép theo giá trị là gì và nó áp dụng như thế nào cho đối tượng?

Sự khác biệt là, theo giá trị, chúng tôi muốn nói rằng việc cấp phát bộ nhớ mới được thực hiện mỗi khi có thứ gì đó được tạo trong khi trong trường hợp tham chiếu, chúng tôi trỏ đến không gian bộ nhớ đã được tạo

Trong ngữ cảnh của javascript, tất cả các kiểu dữ liệu nguyên thủy được cấp phát bộ nhớ thông qua phương thức giá trị và đối với một đối tượng, cả hai đều là bản sao theo giá trị hoặc tham chiếu tùy thuộc vào việc triển khai

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
09

Bản sao/nhân bản đối tượng nông và sâu là gì?

Sự khác biệt cốt lõi giữa bản sao nông và sâu là cách các thuộc tính được sao chép sang đối tượng mới

Trong Bản sao nông, đối tượng mới chia sẻ dữ liệu với đối tượng cũ hơn i. e trong trường hợp ví dụ trên sử dụng

const firstObj = {
1: "deepak",
"age": 28
}
81 tạo một bản sao nông
const firstObj = {
1: "deepak",
"age": 28
}
82 của đối tượng
const firstObj = {
1: "deepak",
"age": 28
}
83. Vì vậy, chuyển qua tham chiếu là một bản sao nông trong hầu hết các trường hợp

Ngoài ra, Một bản sao nông sẽ sao chép các thuộc tính cấp cao nhất, nhưng đối tượng lồng nhau được chia sẻ giữa bản gốc (nguồn) và bản sao (đích)

Một cách khác để sao chép nông là sử dụng

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
74 được thảo luận khi bắt đầu. Hãy xem ví dụ

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
0

Như chúng ta có thể thấy ở trên

const firstObj = {
1: "deepak",
"age": 28
}
85 đó là một cạm bẫy của
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
74.
const firstObj = {
1: "deepak",
"age": 28
}
87 chỉ tạo các bản sao nông. Cả
const firstObj = {
1: "deepak",
"age": 28
}
88 và
const firstObj = {
1: "deepak",
"age": 28
}
89 đều có chung tham chiếu đến đối tượng vì các bản sao riêng lẻ không được tạo, thay vào đó, một tham chiếu đến đối tượng đã được sao chép

Trong Deep copy, đối tượng mới sẽ có tập hợp các cặp khóa-giá trị riêng (có cùng giá trị với đối tượng gốc) thay vì chia sẻ

Hãy xem một số cách để thực hiện một bản sao sâu

  1. // syntax - Object.create(prototype[, propertiesObject])
    var newStudent = Object.create(student);
    // this create a new object with old object added in its prototype // chain
    000
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
1

Vấn đề ở trên là chúng ta không thể sao chép các hàm hoặc khóa đối tượng do người dùng xác định có giá trị là

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
001 hoặc
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
002

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
2

Ngoài ra, phương pháp này không hoạt động đối với các đối tượng hình tròn

Ghi chú. Các đối tượng hình tròn là các đối tượng có các thuộc tính tự tham chiếu

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
3

Ở trên sẽ đưa ra một lỗi nói

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
003

2. Sử dụng toán tử trải rộng ES6 —

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
4

Tuy nhiên,

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
004 vẫn được sao chép nông cạn

Làm thế nào để so sánh hai đối tượng?

Các toán tử đẳng thức

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
005 và đẳng thức nghiêm ngặt
// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
006 cho các đối tượng hoạt động giống hệt nhau. e hai đối tượng chỉ bằng nhau nếu chúng chia sẻ cùng một tham chiếu đến bộ nhớ

Chẳng hạn, nếu hai biến tham chiếu đến cùng một đối tượng thì chúng bằng nhau

// syntax - Object.create(prototype[, propertiesObject])
var newStudent = Object.create(student);
// this create a new object with old object added in its prototype // chain
5

Vui lòng cân nhắc nhập email của bạn tại đây nếu bạn muốn được thêm vào danh sách email của tôi và theo dõi tôi trên phương tiện để đọc thêm bài viết về javascript và trên Github để xem mã điên rồ của tôi. Nếu có gì chưa rõ hoặc muốn chỉ ra điều gì, hãy comment xuống bên dưới

Các đối tượng có phải là giá trị trong JavaScript không?

Đối tượng JavaScript là nơi chứa các giá trị được đặt tên gọi là thuộc tính .

Đối tượng rỗng là thật hay giả?

Chỉ có bảy giá trị là sai trong JavaScript và các đối tượng trống không phải là một trong số chúng . Đối tượng rỗng là đối tượng không có thuộc tính riêng. Bạn có thể sử dụng đối tượng.

Làm cách nào bạn có thể biết JavaScript là đúng hay sai?

Cách kiểm tra xem một biến có sai trong JavaScript hay không .
Sử dụng toán tử đẳng thức nghiêm ngặt (===) để kiểm tra xem một biến có bằng false hay không, e. g. myVar === sai
Toán tử đẳng thức nghiêm ngặt (===) sẽ trả về true nếu biến bằng false, ngược lại, nó sẽ trả về false