Id và class có phải là thuộc tính không?

cho mình hỏi, id và class có phải là thuộc tính k???

Mình nghĩ bạn search Google sẽ có câu trả lời nhanh và chính xác hơn =))
https://www.w3schools.com/html/html_id.asp
https://www.w3schools.com/html/html_classes.asp

5 Likes

Đây là câu hỏi ngáo ngơ nhất mình từng thấy. :rofl: Thấy bạn hỏi câu này + tag html thì đủ để biết bạn chỉ có mỗi kiến thức về html mà chưa biết về OOP cũng như là không hiểu ý nghĩa của id và class. Theo định nghĩa của Wikipedia về ID(link gốc: https://vi.m.wikipedia.org/wiki/Định_danh):

Định danh (hay mã nhận dạng, tiếng Anh: identifier) là một tên xác định (tức là, gắn nhãn nhận dạng của) một đối tượng duy nhất hay một lớp duy nhất của đối tượng, trong đó “đối tượng” hay lớp có thể là một ý tưởng, một đối tượng (hay lớp) vật lý [đếm được], hay vật chất vật lý (hay lớp) [không đếm được]. Chữ viết tắt ID thường chỉ sự nhận dạng, quy trình nhận dạng, hay định danh (tức là, một thực thể của sự định danh). Định danh có thể là một từ, số, chữ cái, ký hiệu, hay bất kì sự kết hợp nào của chúng.

Định nghĩa của Wikipedia về thuộc tính trong lập trình(link gốc: https://vi.m.wikipedia.org/wiki/Thuộc_tính_(lập_trình):

Trong điện toán, thuộc tính (tiếng Anh: attribute ) là một đặc tả định nghĩa đặc tính của một đối tượng, phần tử, hay tập tin.

Và định nghĩa của Wikipedia về lớp trong lập trình máy tính(link gốc: https://vi.m.wikipedia.org/wiki/Lớp_(lập_trình_máy_tính):

Trong lập trình hướng đối tượng, lớp (class) là một chương trình-mã-khuôn mẫu có thể mở rộng được để tạo các đối tượng, cung cấp giá trị khởi tạo cho trạng thái (biến thành viên) và hiện thực của hàn vi (hàm thành viên hay phương thức).

Thấy định nghĩa về lớp khó hiểu quá thì mình có thể tóm gọn thế này: Lớp là một tập hợp của các đối tượng(trong đó có cả lớp, trường hợp này gọi là lớp con), thường có chung một đặc điểm, thuộc tính nào đó. Từ mấy cái định nghĩa trên có thể suy ra được là id có thể coi là một thuộc tính, còn class thì không :rofl:.

1 Like

Ngoài ra thì trong html, có một thuộc tính là class chứa giá trị là các class :smiley:. Bạn hỏi thế thì bố ai hiểu được là bạn đang hỏi thuộc tính class hay là class? Cái comment này có nguồn gốc từ comment của bạn @hieudien.

1 Like
5 Likes

Đối với một thẻ (tag) HTML/XML thì thế nào là một thuộc tính (attribute)?

<?xml />
<data name="s1" value="0" />
<?html />
<div id="id01" class="show large item"><div>

Những thứ được khai báo sau tên thẻ và bên trong cặp ngoặc nhọn (<>), đều là thuộc tính.

<tên_thẻ thuộc_tính="giá_trị" ...></tên_thẻ>

Ví dụ trên w3schools luôn này: https://www.w3schools.com/jsref/met_element_getattribute.asp

3 Likes

Trong html, id vs class được chính thức gọi mặt chỉ tên là attribute, nhưng sau khi html tạo thành DOM thì gọi là property. Tức cùng 1 giá trị id, khi ở trong các thẻ html thì gọi là attribute, ở trong cấu trúc DOM gọi là property. Hai đối tượng này khác nhau dù là có mapping 1-1

Attribute & property dịch sang tiếng Việt đều là thuộc tính, nếu muốn tránh nhập nhằng khái niệm nên phân biệt trong từng ngữ cảnh:

Định nghĩa trong t.a:

Attributes are refering to additional information of an object. (Attribute ám chỉ thông tin phụ, ‘thông tin được thêm vào’ của một object)
Properties are describing the characteristics of an object (Property là đặc tính đại diện cho object, gắn liền với object)

Trong html, tất cả các thuộc tính được quản lý bởi DOM đều gọi là property, giả sử bạn có thêm bất cứ thuộc tính gì ko đặc trưng cho object cũng gọi là property. Trong html, attribute vs property là 2 cách gọi tên 2 đối tượng
So sánh với OOP: bất cứ biến nào bạn thêm vào ko đặc trưng cho object thì đc gọi là field or member var(field tương tự attribute), biến đc xem xét là đại diện cho object mới gọi là property. Property là tập con của field, vì property là 1 field nhưng 1 field bất kỳ thì chưa chắc là property. Việc phân biệt vậy có ý nghĩa về ngữ nghĩa (do các quy tắc khai báo đều như nhau).

9 Likes

Cho mình hỏi mapping 1-1 là gì?

Tương ứng 1-1, hay 1 HTML attribute ứng với chỉ 1 DOM property.

6 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?