这些似乎意味着同样的事情.但什么术语在哪种情况下更合适?
一般而言(在正常的英语用法中)这些术语的含义相同.
在HTML/Javascript的特定上下文中,术语变得混乱,因为DOM元素的HTML表示具有属性(在XML中用于标记中包含的键/值对的术语)但是当表示为JavaScript对象时这些属性显示为对象属性.
为了进一步混淆事物,对属性的更改通常会更新属性.
例如,更改element.href
属性将更新元素上的href
属性,并且将在调用中反映出来element.getAttribute('href')
.
但是,如果您随后读取了该属性,它将被标准化为绝对URL,即使该属性可能是相对URL!
这些话在计算机科学出现之前就存在了.
属性是我们归于某人或某物的品质或对象.例如,权杖是权力和国家的属性.
财产是一种没有任何归属的质量.例如,粘土具有粘合性; 或者,金属的一个特性是导电性.属性通过物理现象证明自己,而不需要将它们归于某人或某物.出于同样的原因,说某人具有男性属性是不言而喻的.实际上,您可以说某个属性由某人或某物拥有.
为了公平起见,在计算机科学中,这两个词,至少在大多数情况下,可以互换使用 - 但是程序员通常不会持有英语文学学位,也不会写或关心语法书籍:).
通常,属性用于描述机制或现实世界的事物.
一个属性是用来描述模型.
例如,文档(坐在桌面上)可能具有草稿属性.
对文档建模的类具有一个属性,用于指示它是否为草稿.在这种情况下,属性捕获状态.
这些术语的确切含义将在很大程度上取决于您所谈论的语言/系统/宇宙.
在HTML/XML中,属性是具有等号和值的标记的一部分,例如,属性并不意味着什么.
因此,我们需要有关您正在讨论的域名的更多信息.
属性是您在HTML标记中使用的实际内容
在此实例中,type和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对它们的实现方式进行了技术区分.