Apa perbedaan antara atribut dan properti? [Tutup]

162

Ini sepertinya berarti hal yang sama. Tetapi istilah apa yang lebih tepat dalam konteks apa?

pedas
sumber
4
Bisakah Anda lebih spesifik tentang konteksnya? Misalnya istilah tersebut memiliki arti yang sangat berbeda dalam konteks C #.
David Arno
1
@ David Arno - sintaksis bahasa yang berbeda telah menggunakan satu atau kedua kata tetapi tidak tergantung pada sintaksis bahasa tertentu, apakah ada perbedaan artinya? Itu bukan pertanyaan yang buruk.
Corey Trager
4
Saya pikir ini adalah pertanyaan yang buruk. Pemeriksaan thesaurus akan menunjukkan bahwa mereka identik dalam istilah bahasa nyata, tetapi komputer dan meta bahasa yang berbeda dapat memberi mereka peran yang sangat berbeda dan karenanya mereka mungkin tidak sama untuk bahasa komputer tertentu. Jadi konteks adalah segalanya.
David Arno
9
Saya lebih .... simpatik. Saya ingat pertama kali saya mendengar istilah "metode". Apa itu "metode"? Oh, itu yang Anda sebut fungsi ketika itu milik kelas. Mengapa terminologi baru untuk sesuatu yang lama? Thoreau berkata, "waspadalah terhadap semua perusahaan yang membutuhkan pakaian baru". (atau kata-kata ...)
Corey Trager
1
Pertanyaan ini terlalu luas tanpa menyediakan beberapa konteks (seperti yang tertulis itu hanya dapat benar-benar dijawab dengan daftar semua konteks yang mungkin).
Quentin

Jawaban:

199

Secara umum (dan dalam penggunaan bahasa Inggris normal) istilah tersebut memiliki arti yang sama.

Dalam konteks spesifik HTML / Javascript istilah menjadi bingung karena representasi HTML dari elemen DOM memiliki atribut (yang menjadi istilah yang digunakan dalam XML untuk pasangan kunci / nilai yang terkandung dalam tag) tetapi ketika direpresentasikan sebagai objek JavaScript, atribut tersebut muncul sebagai properti objek .

Untuk lebih membingungkan hal-hal, perubahan pada properti biasanya akan memperbarui atribut.

Misalnya, mengubah element.href properti akan memperbarui href atribut pada elemen, dan itu akan tercermin dalam panggilan ke element.getAttribute('href').

Namun jika Anda kemudian membaca properti itu, properti itu akan dinormalisasi menjadi URL absolut, meskipun atributnya mungkin URL relatif!

Alnitak
sumber
14
Ini harus menjadi jawaban yang diterima!
Rubens Mariuzzo
3
@RubensMariuzzo, betapapun akuratnya, tidak ada jawaban di sini .. itu hanya menguraikan kemungkinan titik kebingungan bagi orang-orang, dengan konteks.
Brett Caswell
@ BrettCaswell, saya pikir dalam konteks DOM (HTML / JS) jawaban ini menjelaskan perbedaannya dengan jelas dan sederhana untuk saya.
Rubens Mariuzzo
1
@Alnitak Hapus jawaban. Saya membuat satu abad untuk Anda.
mkHun
Saya berasal python. Bisakah saya menggunakan istilah class attributedan instance property?
Sarit
71

Kata-kata ini ada sebelum Ilmu Komputer muncul.

  1. Atribut adalah kualitas atau objek yang kita atributkan kepada seseorang atau sesuatu. Misalnya, tongkat kerajaan adalah atribut kekuasaan dan kenegaraan.

  2. Properti adalah kualitas yang ada tanpa atribusi apa pun . Misalnya, tanah liat memiliki kualitas perekat; atau, salah satu sifat logam adalah konduktivitas listrik. Properti menunjukkan dirinya melalui fenomena fisik tanpa perlu menghubungkannya dengan seseorang atau sesuatu. Dengan cara yang sama, mengatakan bahwa seseorang memiliki atribut maskulin sudah jelas. Akibatnya, Anda dapat mengatakan bahwa properti dimiliki oleh seseorang atau sesuatu.

Agar adil, dalam Ilmu Komputer dua kata ini, setidaknya untuk sebagian besar, dapat digunakan secara bergantian - tetapi sekali lagi programmer biasanya tidak memegang gelar dalam Sastra Inggris dan tidak menulis atau peduli banyak tentang buku tata bahasa :).

George
sumber
1
Anda lebih dekat dengan maknanya seperti yang saya mengerti. Atribut adalah Type Describer, itu menggambarkan objek ke sesuatu di luar konteks (seperti interpeter) .. yaitu, ada konteks, tetapi konteks itu mungkin bisa saling dipertukarkan. Untuk menggunakan HTML misalnya, seluruh tujuan lebar tidak berfungsi jika Anda menguraikan dokumen tanpa niat untuk menampilkan / merendernya ke halaman.
Brett Caswell
Terima kasih! Saya datang ke sini mencari panduan kapan menggunakan istilah mana saat memberi nama. Saya bahkan tidak peduli (banyak) apakah ini benar secara teknis atau tidak, itu perbedaan yang sangat berguna.
user1433150
1
Ini adalah jenis jawaban yang saya cari juga. Mengapa konteks atau apa yang diputuskan pelaksana bahasa tertentu penting. Mereka mungkin telah membuat keputusan yang sewenang-wenang atau tidak berpendidikan. Saya ingin membuat yang berpendidikan dan ini memberi saya alasan konkret untuk memilih satu dari yang lain. Ini juga dapat menjelaskan mengapa pelaksana tertentu membuat pilihan mereka.
bielawski
2
Yang berhasil bagi saya adalah menganggap properti sebagai obyektif dan atribut relatif / subyektif. Fitur seperti warna, bentuk, skor, kecepatan angin, suhu (98'F) dan fakta objektif atau terukur lainnya membuat Properti menjadi baik. Fitur seperti tekstur ("lunak"), kondisi ("berangin"), suhu ("panas") dan pernyataan lain yang tidak dapat disangkal benar membuat atribut lebih baik.
Ivan
20

Seringkali atribut digunakan untuk menggambarkan mekanisme atau hal di dunia nyata.

Sebuah properti yang digunakan untuk menggambarkan model.

Misalnya, dokumen (duduk di meja Anda) mungkin memiliki atribut bahwa itu adalah konsep.

Kelas yang memodelkan dokumen memiliki properti untuk menunjukkan apakah itu konsep atau tidak. Dalam hal ini properti menangkap negara.

Walt Stoneburner
sumber
1
Apakah itu berarti, properti instance adalah atribut?
Abdurrahim
Menarik, tapi saya tidak percaya begitu. Diberikan sebuah dokumen, sebuah instance dari atribut mungkin berupa selembar kertas; sebuah instance dari properti yang mewakili model mungkin buffer yang cukup besar untuk isi kertas tersebut.
Walt Stoneburner
17

Atribut adalah hal aktual yang Anda gunakan di dalam tag HTML Anda

<input type="checkbox" checked="checked" />

Dalam contoh ini ketik dan diperiksa adalah atribut. Properti ini adalah nilai dari atribut ini, yang disimpan oleh browser di dalam elemen DOM. Seringkali nilai atribut dan propertinya sama, itulah yang membuatnya sangat membingungkan.

Dalam contoh ini elemen DOM inputmemiliki properti typedengan nilai "checkbox"dan properti checkeddengan nilai true(perhatikan bagaimana nilai ini berbeda dari nilai di dalam atribut HTML).

Menggunakan Firebug Anda dapat mengamati perilaku properti saat mengklik elemen dan memilih "tampilan DOM".

smonusbonus
sumber
Ini bisa menjadi jawaban yang diterima. Keduanya jelas dalam teori dan berguna dalam konteks.
Jaune
15

Arti yang tepat dari istilah-istilah ini akan sangat tergantung pada bahasa / sistem / alam semesta apa yang Anda bicarakan.

Dalam HTML / XML, atribut adalah bagian dari tag dengan tanda dan nilai sama dengan, dan properti tidak berarti apa-apa, misalnya.

Jadi kami memerlukan informasi lebih lanjut tentang domain apa yang Anda diskusikan.

Ned Batchelder
sumber
7
Ini tidak benar. Lihat jawaban Alnitak.
kba
6

Dengan Python ...

class X( object ):
    def __init__( self ):
        self.attribute
    def getAttr( self ):
        return self.attribute
    def setAttr( self, value ):
        self.attribute= value
    property_name= property( getAttr, setAttr )

Properti adalah nama seperti atribut tunggal yang membungkus koleksi fungsi setter, getter (dan deleter).

Atribut biasanya adalah satu objek dalam objek lain.

Karena itu, bagaimanapun, Python memberi Anda metode seperti __getattr__yang memungkinkan Anda memperluas definisi "atribut".

Intinya - mereka hampir identik. Python membuat perbedaan teknis dalam penerapannya.

S.Lott
sumber
2

Di Jawa (atau bahasa lain), menggunakan Properti / Atribut tergantung pada penggunaan:

  • Properti yang digunakan ketika nilai tidak terlalu sering berubah (biasanya digunakan saat startup atau untuk variabel lingkungan)

  • Atribut adalah nilai (objek anak) dari suatu Elemen (objek) yang dapat berubah sangat sering / sepanjang waktu dan menjadi atau tidak persisten

eric
sumber
2

Dalam HTML tampaknya atribut khusus untuk pohon DOM sementara properti digunakan untuk menggambarkan karakteristik elemen DOM

goonerify
sumber
2

Apa perbedaan antara Atribut dan Properti?
Apa perbedaan antara Fitur dan Fungsi? Apa perbedaan antara Karakteristik dan Karakter? Apa perbedaan antara Act dan Behavior?

Itu hanya perubahan konteks.

Obyek, Produk, Kepribadian, Orang

Seseorang Bertingkah Laku. Kepribadian memiliki Karakteristik Karakter yang diberikan. Suatu Produk memiliki Fitur yang menurunkan Fungsionalitas. Objek memiliki Atribut yang memberikannya Properties.

Umum
sumber
Itu sebenarnya jawaban yang bagus.
anonim
1
<property attribute="attributeValue">proopertyValue</property>

akan menjadi salah satu cara untuk melihatnya.

Dalam C #

[Attribute]
public class Entity
{
    private int Property{get; set;};
merpati
sumber
8
Maaf untuk memilih ini tetapi dalam XML apa yang Anda beri label properti sebenarnya adalah "elemen"
Harald Scheirich
@ HaraldScheirich balasan lambat;) tetapi elemen ini memang disebut "properti" untuk memperjelas koneksi dengan Entity.Property. Elemen xml tidak biasa disebut "elemen"
merpati
1

Delphi menggunakan properti dan mereka telah menemukan jalan mereka ke .NET (karena memiliki arsitek yang sama).

Dalam Delphi mereka sering digunakan dalam kombinasi dengan informasi tipe runtime sehingga editor properti terintegrasi dapat digunakan untuk mengatur properti dalam designtime.

Properti tidak selalu terkait dengan bidang. Mereka dapat fungsi yang mungkin memiliki efek samping (tapi tentu saja itu desain yang sangat buruk).

Toon Krijthe
sumber
Belum tentu. Pemeriksaan kotor otomatis pada objek yang persisten akan menjadi contoh properti dengan efek samping yang tidak akan menjadi desain yang buruk.
Quibblesome