Cela semble vouloir dire la même chose. Mais quel terme est le plus approprié dans quel contexte?
Cela semble vouloir dire la même chose. Mais quel terme est le plus approprié dans quel contexte?
Réponses:
En termes généraux (et dans l'usage normal de l'anglais), les termes signifient la même chose.
Dans le contexte spécifique de HTML / Javascript, les termes sont confus car la représentation HTML d'un élément DOM a des attributs (c'est-à-dire le terme utilisé en XML pour les paires clé / valeur contenues dans une balise) mais lorsqu'ils sont représentés comme un objet JavaScript, ces attributs apparaissent comme des propriétés d' objet .
Pour compliquer davantage les choses, les modifications apportées aux propriétés mettront généralement à jour les attributs.
Par exemple, la modification de la element.href
propriété mettra à jour l' href
attribut sur l'élément, et cela sera reflété dans un appel à element.getAttribute('href')
.
Cependant, si vous lisez ultérieurement cette propriété, elle aura été normalisée en une URL absolue, même si l' attribut peut être une URL relative!
python
. Puis-je utiliser le terme class attribute
et instance property
?
Ces mots existaient bien avant l'arrivée de l'informatique.
L'attribut est une qualité ou un objet que nous attribuons à quelqu'un ou à quelque chose. Par exemple, le sceptre est un attribut du pouvoir et de l'état.
La propriété est une qualité qui existe sans aucune attribution . Par exemple, l'argile a des qualités adhésives; ou l'une des propriétés des métaux est la conductivité électrique. Les propriétés se manifestent par des phénomènes physiques sans qu'il soit nécessaire de les attribuer à quelqu'un ou à quelque chose. De même, dire que quelqu'un a des attributs masculins va de soi. En fait, on pourrait dire qu'une propriété appartient à quelqu'un ou à quelque chose.
Pour être juste cependant, en informatique, ces deux mots, du moins pour la plupart, peuvent être utilisés de manière interchangeable - mais là encore, les programmeurs ne détiennent généralement pas de diplômes en littérature anglaise et n'écrivent pas ou ne se soucient pas beaucoup des livres de grammaire :).
Souvent, un attribut est utilisé pour décrire le mécanisme ou la chose du monde réel.
Une propriété est utilisée pour décrire le modèle.
Par exemple, un document (posé sur votre bureau) peut avoir l'attribut qu'il s'agit d'un brouillon.
La classe qui modélise les documents a une propriété pour indiquer s'il s'agit ou non d'un brouillon. Dans ce cas, la propriété capture l'état.
Un attribut est l'élément réel que vous utilisez dans votre balise HTML, comme
<input type="checkbox" checked="checked" />
Dans ce type d'instance et coché sont les attributs. La propriété est cependant la valeur de ces attributs, que le navigateur enregistre dans l'élément DOM. Souvent, la valeur des attributs et les propriétés sont égales, c'est ce qui rend les choses si déroutantes.
Dans cet exemple, l'élément DOM input
a la propriété type
avec la valeur "checkbox"
et la propriété checked
avec la valeur true
(notez comment cette valeur diffère de la valeur à l'intérieur de l'attribut HTML).
En utilisant Firebug, vous pouvez observer le comportement des propriétés en cliquant sur un élément et en sélectionnant la "vue DOM".
La signification précise de ces termes dépendra beaucoup de la langue / du système / de l'univers dont vous parlez.
En HTML / XML, un attribut est la partie d'une balise avec un signe égal et une valeur, et la propriété ne veut rien dire, par exemple.
Nous avons donc besoin de plus d'informations sur le domaine dont vous parlez.
En 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 )
Une propriété est un nom de type attribut unique qui enveloppe une collection de fonctions setter, getter (et deleter).
Un attribut est généralement un objet unique dans un autre objet.
Cela dit, cependant, Python vous donne des méthodes comme celles __getattr__
qui vous permettent d'étendre la définition d '"attribut".
Bottom Line - ils sont presque synonymes. Python fait une distinction technique dans la façon dont ils sont implémentés.
En Java (ou dans d'autres langages), l'utilisation de Propriété / Attribut dépend de l'utilisation:
Propriété utilisée lorsque la valeur ne change pas très souvent (généralement utilisée au démarrage ou pour la variable d'environnement)
Attributes est une valeur (objet enfant) d'un élément (objet) qui peut changer très souvent / tout le temps et être ou non persistante
Quelle est la différence entre l'attribut et la propriété?
Quelle est la différence entre Feature et Function? Quelle est la différence entre caractéristique et caractère? Quelle est la différence entre Act et Behavior?
C'est juste un changement de contexte.
Objet, produit, personnalité, personne
Une personne agit dans un comportement. Une personnalité a des caractéristiques d'un caractère donné. Un produit a des fonctionnalités qui dérivent des fonctionnalités. Un objet a des attributs qui lui donnent des propriétés.
<property attribute="attributeValue">proopertyValue</property>
serait une façon de voir les choses.
En C #
[Attribute]
public class Entity
{
private int Property{get; set;};
Delphi a utilisé des propriétés et elles ont trouvé leur chemin dans .NET (car il a le même architecte).
Dans Delphi, ils sont souvent utilisés en combinaison avec des informations de type d'exécution, de sorte que l'éditeur de propriétés intégré peut être utilisé pour définir la propriété au moment de la conception.
Les propriétés ne sont pas toujours liées aux champs. Il peut s'agir de fonctions susceptibles d'avoir des effets secondaires (mais bien sûr, c'est une très mauvaise conception).