Các thuộc tính đối tượng được gán trong javascript như thế nào?

Hãy xem mỗi cú pháp để truy cập các thuộc tính hoạt động như thế nào. Và hiểu khi nào thì hợp lý, tùy trường hợp mà dùng cách này hay cách khác

Mục lục

1. Trình truy cập thuộc tính dấu chấm

Một cách phổ biến để truy cập thuộc tính của một đối tượng là cú pháp truy cập thuộc tính dấu chấm

javascript

expression.identifier

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

7 nên đánh giá một đối tượng và

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

8 là tên của thuộc tính bạn muốn truy cập

Ví dụ: hãy truy cập thuộc tính

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

9 của đối tượng

javascript

const weirdObject = {

'prop-3': 'three',

'3': 'three'

};

weirdObject.prop-3; // => NaN

weirdObject.3; // throws SyntaxError: Unexpected number

0

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

javascript

const weirdObject = {

'prop-3': 'three',

'3': 'three'

};

weirdObject.prop-3; // => NaN

weirdObject.3; // throws SyntaxError: Unexpected number

1 là một trình truy cập thuộc tính dấu chấm đọc thuộc tính

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

9 của đối tượng

javascript

const weirdObject = {

'prop-3': 'three',

'3': 'three'

};

weirdObject.prop-3; // => NaN

weirdObject.3; // throws SyntaxError: Unexpected number

0

Bạn có thể sử dụng trình truy cập thuộc tính dấu chấm trong chuỗi để truy cập các thuộc tính sâu hơn.

javascript

const weirdObject = {

'prop-3': 'three',

'3': 'three'

};

weirdObject.prop-3; // => NaN

weirdObject.3; // throws SyntaxError: Unexpected number

4

Chọn trình truy cập thuộc tính dấu chấm khi biết trước tên thuộc tính

1. Trình truy cập thuộc tính 1 dấu chấm yêu cầu số nhận dạng

Trình truy cập thuộc tính dấu chấm hoạt động chính xác khi tên thuộc tính là một mã định danh hợp lệ. Mã định danh trong JavaScript chứa các chữ cái Unicode,

javascript

const weirdObject = {

'prop-3': 'three',

'3': 'three'

};

weirdObject.prop-3; // => NaN

weirdObject.3; // throws SyntaxError: Unexpected number

5,

javascript

const weirdObject = {

'prop-3': 'three',

'3': 'three'

};

weirdObject.prop-3; // => NaN

weirdObject.3; // throws SyntaxError: Unexpected number

6 và chữ số

javascript

const weirdObject = {

'prop-3': 'three',

'3': 'three'

};

weirdObject.prop-3; // => NaN

weirdObject.3; // throws SyntaxError: Unexpected number

7, nhưng không thể bắt đầu bằng chữ số

Đây không phải là vấn đề, vì thông thường, tên thuộc tính là số nhận dạng hợp lệ. e. g. ________ 19, ________ 49, ________ 150, ________ 151

Nhưng đôi khi thuộc tính không phải là định danh hợp lệ

javascript

const weirdObject = {

'prop-3': 'three',

'3': 'three'

};

weirdObject.prop-3; // => NaN

weirdObject.3; // throws SyntaxError: Unexpected number

Bởi vì

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

52 và

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

53 là các định danh không hợp lệ, trình truy cập thuộc tính dấu chấm không hoạt động

  • javascript

    const hero = {

    name: 'Batman'

    };

    // Dot property accessor

    hero.name; // => 'Batman'

    54 đánh giá thành

    javascript

    const hero = {

    name: 'Batman'

    };

    // Dot property accessor

    hero.name; // => 'Batman'

    55, thay vì

    javascript

    const hero = {

    name: 'Batman'

    };

    // Dot property accessor

    hero.name; // => 'Batman'

    56 dự kiến
  • javascript

    const hero = {

    name: 'Batman'

    };

    // Dot property accessor

    hero.name; // => 'Batman'

    57 ném một

    javascript

    const hero = {

    name: 'Batman'

    };

    // Dot property accessor

    hero.name; // => 'Batman'

    58

Tại sao biểu thức

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

54 đánh giá thành

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

55?

Để truy cập các thuộc tính có các tên đặc biệt này, hãy sử dụng trình truy cập thuộc tính dấu ngoặc vuông [được mô tả trong phần tiếp theo]

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

5

Cú pháp dấu ngoặc vuông truy cập dễ dàng các thuộc tính có tên đặc biệt.

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

81 và

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

82

2. Trình truy cập thuộc tính dấu ngoặc vuông

Trình truy cập thuộc tính dấu ngoặc vuông có cú pháp sau

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

8

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

7 đầu tiên sẽ đánh giá một đối tượng và

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

7 thứ hai sẽ đánh giá một chuỗi biểu thị tên thuộc tính

Đây là một ví dụ

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

3

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

85 và

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

86 đều đọc thuộc tính

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

9 bằng cách sử dụng cú pháp dấu ngoặc vuông

Chọn trình truy cập thuộc tính dấu ngoặc vuông khi tên thuộc tính động, tôi. e. được xác định trong thời gian chạy

3. phá hủy đối tượng

Cú pháp hủy đối tượng cơ bản khá đơn giản

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

7

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

8 là tên của thuộc tính để truy cập và

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

7 sẽ đánh giá một đối tượng. Sau khi phá hủy, biến

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

8 chứa giá trị thuộc tính

Đây là một ví dụ

javascript

const weirdObject = {

'prop-3': 'three',

'3': 'three'

};

weirdObject.prop-3; // => NaN

weirdObject.3; // throws SyntaxError: Unexpected number

1

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

31 là một đối tượng phá hủy. Việc phá hủy xác định một biến

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

9 với giá trị của thuộc tính

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

9

Khi bạn đã quen với việc phá hủy đối tượng, bạn sẽ thấy rằng cú pháp của nó là một cách tuyệt vời để trích xuất các thuộc tính thành các biến

Chọn đối tượng hủy khi bạn muốn tạo một biến có giá trị thuộc tính

Lưu ý rằng bạn có thể trích xuất bao nhiêu thuộc tính tùy thích

javascript

const weirdObject = {

'prop-3': 'three',

'3': 'three'

};

weirdObject.prop-3; // => NaN

weirdObject.3; // throws SyntaxError: Unexpected number

5

3. 1 biến bí danh

Nếu bạn muốn truy cập thuộc tính, nhưng tạo một tên biến khác với tên thuộc tính, bạn có thể sử dụng bí danh

javascript

const weirdObject = {

'prop-3': 'three',

'3': 'three'

};

weirdObject.prop-3; // => NaN

weirdObject.3; // throws SyntaxError: Unexpected number

6

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

8 là tên của thuộc tính để truy cập,

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

35 là tên biến và

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

7 sẽ ước tính cho một đối tượng. Sau khi phá hủy, biến

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

35 chứa giá trị thuộc tính

Đây là một ví dụ

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

0

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

38 là một đối tượng phá hủy. Việc hủy cấu trúc xác định một biến mới

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

39 [thay vì

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

9 như trong ví dụ trước] và gán cho

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

39 giá trị

javascript

const weirdObject = {

'prop-3': 'three',

'3': 'three'

};

weirdObject.prop-3; // => NaN

weirdObject.3; // throws SyntaxError: Unexpected number

1

3. 2 Tên thuộc tính động

Điều làm cho việc phá hủy đối tượng trở nên hữu ích hơn nữa là bạn có thể trích xuất các thuộc tính biến với giá trị động

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

1

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

7 đầu tiên sẽ đánh giá một tên thuộc tính và

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

8 sẽ chỉ ra tên biến được tạo sau khi phá hủy.

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

7 thứ hai sẽ đánh giá đối tượng bạn muốn hủy cấu trúc

Đây là một ví dụ

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

2

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

76 là một đối tượng phá hủy động, trong thời gian chạy, xác định thuộc tính nào sẽ trích xuất

4. Khi tài sản không tồn tại

Nếu thuộc tính được truy cập không tồn tại, cả 3 cú pháp của trình truy cập đều có giá trị là

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

77

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

3

Thuộc tính

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

9 không tồn tại trong đối tượng

javascript

const weirdObject = {

'prop-3': 'three',

'3': 'three'

};

weirdObject.prop-3; // => NaN

weirdObject.3; // throws SyntaxError: Unexpected number

0. Do đó, trình truy cập thuộc tính dấu chấm

javascript

const weirdObject = {

'prop-3': 'three',

'3': 'three'

};

weirdObject.prop-3; // => NaN

weirdObject.3; // throws SyntaxError: Unexpected number

1, trình truy cập thuộc tính dấu ngoặc vuông

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

85 và biến

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

9 sau khi phá hủy đánh giá thành

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

77

5. Phần kết luận

JavaScript cung cấp nhiều cách hay để truy cập các thuộc tính của đối tượng

Cú pháp truy cập thuộc tính dấu chấm

javascript

const hero = {

name: 'Batman'

};

// Dot property accessor

hero.name; // => 'Batman'

4 hoạt động độc đáo khi bạn biết trước biến

Khi tên thuộc tính là động hoặc không phải là mã định danh hợp lệ, một giải pháp thay thế tốt hơn là trình truy cập thuộc tính dấu ngoặc vuông.

javascript

const weirdObject = {

'prop-3': 'three',

'3': 'three'

};

weirdObject.prop-3; // => NaN

weirdObject.3; // throws SyntaxError: Unexpected number

15

Việc phá hủy đối tượng trích xuất thuộc tính trực tiếp vào một biến.

javascript

const weirdObject = {

'prop-3': 'three',

'3': 'three'

};

weirdObject.prop-3; // => NaN

weirdObject.3; // throws SyntaxError: Unexpected number

16. Hơn nữa, bạn có thể trích xuất các tên thuộc tính động [được xác định khi chạy].

javascript

const weirdObject = {

'prop-3': 'three',

'3': 'three'

};

weirdObject.prop-3; // => NaN

weirdObject.3; // throws SyntaxError: Unexpected number

17

Không có cách tốt hay xấu để truy cập tài sản. Chọn tùy thuộc vào tình huống cụ thể của bạn

Thích bài viết?

đề xuất cải tiến

Bài đăng chất lượng vào hộp thư đến của bạn

Tôi thường xuyên xuất bản bài viết có chứa

  • Các khái niệm JavaScript quan trọng được giải thích bằng các từ đơn giản
  • Tổng quan về các tính năng JavaScript mới
  • Cách sử dụng TypeScript và cách gõ
  • Thiết kế phần mềm và thực hành mã hóa tốt

Đăng ký nhận bản tin của tôi để nhận chúng ngay trong hộp thư đến của bạn

Đặt mua

Tham gia cùng 6719 người đăng ký khác

Giới thiệu về Dmitri Pavlutin

Nhà văn và huấn luyện viên công nghệ. Thói quen hàng ngày của tôi bao gồm [nhưng không giới hạn] uống cà phê, viết mã, viết, huấn luyện, vượt qua sự nhàm chán 😉

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

JavaScript bao gồm một số cách để thêm thuộc tính vào đối tượng. .
sử dụng ký hiệu dấu chấm**
sử dụng ký hiệu ngoặc [ ]**
sử dụng phương thứcdefineProperty[]**
sử dụng toán tử trải rộng **
sử dụng đối tượng. phương thức gán[]**

Làm cách nào để lấy thuộc tính của một đối tượng trong JavaScript?

Bạn có thể truy cập các thuộc tính của một đối tượng trong JavaScript theo 3 cách. .
Trình truy cập thuộc tính dấu chấm. vật. tài sản
Truy cập thuộc tính dấu ngoặc vuông. đối tượng ['thuộc tính']
phá hủy đối tượng. const {thuộc tính} = đối tượng

Thuộc tính đối tượng được tham chiếu như thế nào?

Các đối tượng được gán và sao chép theo tham chiếu . Nói cách khác, một biến lưu trữ không phải “giá trị đối tượng”, mà là “tham chiếu” [địa chỉ trong bộ nhớ] cho giá trị. Vì vậy, sao chép một biến như vậy hoặc chuyển nó dưới dạng đối số hàm sao chép tham chiếu đó, chứ không phải chính đối tượng đó.

Chủ Đề