it-swarm.com.de

Was ist der Unterschied zwischen Attribut und Eigenschaft?

Diese scheinen dasselbe zu bedeuten. Aber welcher Begriff passt in welchem ​​Kontext besser?

147
caustic

Im Allgemeinen (und im normalen englischen Sprachgebrauch) bedeuten die Begriffe dasselbe.

Im speziellen Kontext von HTML/Javascript werden die Begriffe verwirrt, weil die HTML-Darstellung eines DOM-Elements Attribute (das ist der in XML verwendete Begriff für die in einem Tag enthaltenen Schlüssel/Wert-Paare) hat, aber wann dargestellt als JavaScript-Objekt erscheinen diese Attribute als Objekt Eigenschaften.

Um die Dinge weiter zu verwirren, werden die Attribute normalerweise durch Änderungen an den Eigenschaften aktualisiert.

Wenn Sie beispielsweise element.hrefEigenschaft ändern, wird hrefAttribut für das Element aktualisiert, was sich in einem Aufruf von widerspiegelt element.getAttribute('href').

Wenn Sie diese Eigenschaft anschließend jedoch lesen, wurde sie zu einer absoluten URL normalisiert, obwohl das Attribut möglicherweise eine relative URL ist!

185
Alnitak

Diese Worte existierten lange bevor die Informatik auftauchte.

  1. Attribut ist eine Eigenschaft oder ein Objekt, das wir jemandem oder etwas zuschreiben . Zum Beispiel ist das Zepter ein Attribut von Macht und Staatlichkeit.

  2. Eigenschaft ist eine Eigenschaft, die ohne Zuordnung existiert. Beispielsweise hat Ton adhäsive Eigenschaften; oder eine der Eigenschaften von Metallen ist die elektrische Leitfähigkeit. Eigenschaften zeigen sich durch physikalische Phänomene, ohne dass sie jemandem oder etwas zugeschrieben werden müssen. Aus dem gleichen Grund ist es selbstverständlich zu sagen, dass jemand männliche Attribute hat. In der Tat könnte man sagen, dass eine Immobilie jemandem oder etwas gehört.

Um fair zu sein, in der Informatik können diese beiden Wörter zumindest größtenteils austauschbar verwendet werden - aber andererseits haben Programmierer normalerweise keine Abschlüsse in englischer Literatur und schreiben oder kümmern sich nicht viel um Grammatikbücher :).

63
George

Oft wird ein Attribut verwendet, um den Mechanismus oder die reale Welt zu beschreiben.

Eine Eigenschaft wird verwendet, um das Modell zu beschreiben.

Beispielsweise kann ein Dokument (das auf Ihrem Schreibtisch liegt) das Attribut haben, dass es ein Entwurf ist.

Die Klasse, die Dokumente modelliert, verfügt über eine Eigenschaft, die angibt, ob es sich um einen Entwurf handelt oder nicht. In diesem Fall erfasst die Eigenschaft den Zustand.

18

Die genaue Bedeutung dieser Begriffe hängt stark davon ab, über welche Sprache/System/Universum Sie sprechen.

In HTML/XML ist ein Attribut der Teil eines Tags mit einem Gleichheitszeichen und einem Wert, und die Eigenschaft hat beispielsweise keine Bedeutung.

Wir benötigen daher weitere Informationen zu der Domain, über die Sie diskutieren.

16
Ned Batchelder

Ein Attribut ist die eigentliche Sache, die Sie in Ihrem HTML-Tag verwenden möchten

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

In diesem Fall sind type und checked Attribute. Die Eigenschaft ist jedoch der Wert dieser Attribute, den der Browser im DOM-Element speichert. Oft sind der Wert der Attribute und der Eigenschaften gleich, das macht es so verwirrend.

In diesem Beispiel hat das DOM-Element input die Eigenschaft type mit dem Wert "checkbox" und die Eigenschaft checked mit dem Wert true (beachten Sie, dass sich dieser Wert vom Wert im HTML-Attribut unterscheidet).

Mit Firebug können Sie das Verhalten von Eigenschaften beobachten, wenn Sie auf ein Element klicken und die "DOM-Ansicht" auswählen.

13
smonusbonus

In 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 )

Eine Eigenschaft ist ein einzelner attributartiger Name, der eine Sammlung von Setter-, Getter- (und Deleter-) Funktionen umschließt.

Ein Attribut ist normalerweise ein einzelnes Objekt innerhalb eines anderen Objekts.

Allerdings gibt Ihnen Python Methoden wie __getattr__, mit dem Sie die Definition von "Attribut" erweitern können.

Fazit - sie sind fast synonym. Python unterscheidet technisch, wie sie implementiert sind.

5
S.Lott

In Java (oder anderen Sprachen) hängt die Verwendung von Property/Attribute von der Verwendung ab:

  • Eigenschaft, die verwendet wird, wenn sich der Wert nicht sehr oft ändert (normalerweise beim Start oder für Umgebungsvariablen verwendet)

  • Attribute ist ein Wert (untergeordnetes Objekt) eines Elements (Objekts), der sich sehr häufig/ständig ändern kann und dauerhaft ist oder nicht

2
eric

In HTML scheinen Attribute spezifisch für den DOM-Baum zu sein, während Eigenschaften zur Beschreibung der Eigenschaften von DOM-Elementen verwendet werden

1
goonerify
<property attribute="attributeValue">proopertyValue</property>

wäre eine Möglichkeit, es zu betrachten.

In c #

[Attribute]
public class Entity
{
    private int Property{get; set;};
1
dove

Was ist der Unterschied zwischen Attribut und Eigenschaft?
Was ist der Unterschied zwischen Merkmal und Funktion? Was ist der Unterschied zwischen Characteristic und Character? Was ist der Unterschied zwischen Handlung und Verhalten?

Es ist nur eine Änderung im Kontext.

Objekt, Produkt, Persönlichkeit, Person

Eine Person handelt in einem Verhalten. Eine Persönlichkeit hat Eigenschaften eines bestimmten Charakters. Ein Produkt verfügt über Funktionen, aus denen die Funktionalität abgeleitet wird. Ein Objekt hatte Attribute, die es Eigenschaften geben.

0
Generic

Delphi verwendete Eigenschaften und sie haben ihren Weg in .NET gefunden (weil es den gleichen Architekten hat).

In Delphi werden sie häufig in Kombination mit Informationen zum Laufzeit-Typ verwendet, sodass der integrierte Eigenschaftseditor zum Festlegen der Eigenschaft in der Entwurfszeit verwendet werden kann.

Eigenschaften beziehen sich nicht immer auf Felder. Es können Funktionen sein, die möglicherweise Nebenwirkungen haben (aber das ist natürlich ein sehr schlechtes Design).

0
Toon Krijthe