これらは同じことを意味するようです。しかし、どの用語がどのコンテキストでより適切ですか?
これらは同じことを意味するようです。しかし、どの用語がどのコンテキストでより適切ですか?
回答:
一般的な用語(および通常の英語の使用法)では、これらの用語は同じことを意味します。
HTML / JavaScriptの特定のコンテキストでは、DOM要素のHTML表現に属性(タグ内に含まれるキー/値ペアのXMLで使用される用語)があるため、用語が混乱しますが、JavaScriptオブジェクトとして表される場合、これらの属性オブジェクトのプロパティとして表示されます。
さらに混乱させるために、プロパティを変更すると、通常は属性が更新されます。
たとえば、element.href
プロパティを変更すると、要素のhref
属性が更新され、それがへの呼び出しに反映されますelement.getAttribute('href')
。
ただし、後でそのプロパティを読み取る場合、属性が相対URL であっても、絶対URLに正規化されます。
python
です。用語class attribute
とを使用できますinstance property
か?
これらの言葉は、コンピュータサイエンスが登場する前から存在していました。
属性は、私たちが誰かまたは何かに帰属させる品質またはオブジェクトです。たとえば、セプターは権力と国家の属性です。
プロパティは、帰属なしに存在する品質です。たとえば、粘土には粘着性があります。または、金属の特性の1つは導電率です。プロパティは、誰かまたは何かに起因する必要なしに、物理的現象を通じて自分自身を示します。同様に、誰かが男性的な属性を持っていると言うことは自明です。実際、プロパティは誰かまたは何かが所有していると言えます。
公平を期すために、コンピュータサイエンスでは、これらの2つの単語は、少なくとも大部分は同じ意味で使用できます。ただし、プログラマは通常、英語の文学の学位を取得しておらず、文法の本についてはあまり気にしていません。
多くの場合、属性はメカニズムまたは実際の状況を説明するために使用されます。
プロパティは、モデルを記述するために使用されます。
たとえば、(机の上に座っている)文書には下書きであるという属性がある場合があります。
ドキュメントをモデル化するクラスには、ドラフトかどうかを示すプロパティがあります。この場合、プロパティは状態をキャプチャします。
属性は、HTMLタグ内で実際に使用するものです。
<input type="checkbox" checked="checked" />
このインスタンスタイプでは、属性がチェックされます。ただし、プロパティはこれらの属性の値であり、ブラウザがDOM要素内に保存します。多くの場合、属性とプロパティの値は等しいため、混乱を招きます。
この例では、DOM要素にinput
はtype
値"checkbox"
を持つプロパティchecked
と値を持つプロパティがありますtrue
(この値がHTML属性内の値とどのように異なるかに注意してください)。
Firebugを使用すると、要素をクリックして「DOMビュー」を選択したときのプロパティの動作を観察できます。
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 )
プロパティは、setter、getter(およびdeleter)関数のコレクションをラップする単一の属性のような名前です。
属性は通常、別のオブジェクト内の単一のオブジェクトです。
ただし、Pythonは次のようなメソッドを提供します __getattr__
「属性」の定義を拡張できるいます。
結論-彼らはほとんど同義です。Pythonは、それらがどのように実装されるかを技術的に区別しています。
<property attribute="attributeValue">proopertyValue</property>
それを見る一つの方法でしょう。
C#で
[Attribute]
public class Entity
{
private int Property{get; set;};