185

这些似乎意味着同样的事情。但是在什么情况下哪个词更合适呢?

4

11 回答 11

215

一般而言(以及正常的英语用法),这些术语的含义相同。

在 HTML / Javascript 的特定上下文中,术语会混淆,因为 DOM 元素的 HTML 表示具有属性(在 XML 中用于标记中包含的键/值对的术语),但是当表示为 JavaScript 对象时,这些属性显示为对象属性

更令人困惑的是,对属性的更改通常会更新属性。

例如,更改element.href 属性将更新元素上的href 属性,这将反映在对element.getAttribute('href').

但是,如果您随后阅读该属性,它将被规范化为绝对 URL,即使该属性可能是相对 URL!

于 2012-05-20T12:49:08.937 回答
90

这些词在计算机科学出现之前就已经存在了。

  1. 属性是我们归因于某人或某物的品质或对象。例如,权杖是权力和国家地位的属性。

  2. 财产是一种没有任何归属的品质。例如,粘土具有粘性;即,粘土的一个特性是它的粘合性。另一个例子:金属的特性之一是导电性。属性通过物理现象展示自己,而无需将它们归因于某人或某物。同理,说某人有阳刚之气是不言而喻的。实际上,您可以说财产归某人或某物所有。

公平地说,在计算机科学中,这两个词至少在大多数情况下可以互换使用——但程序员通常没有英语文学学位,也不写或关心语法书:)。

于 2014-02-05T00:48:43.907 回答
28

属性是您在 HTML 标记中使用的实际内容,例如

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

在此实例中,类型和选中是属性。该属性是这些属性的值,浏览器将其保存在 DOM 元素中。通常属性和属性的值是相等的,这就是它如此混乱的原因。

在此示例中,DOM 元素input具有type带有值的属性和带有值的"checkbox"属性(请注意此值与 HTML 属性中的值有何不同)。checkedtrue

使用 Firebug,您可以在单击元素并选择“DOM 视图”时观察属性的行为。

于 2013-04-20T13:12:10.233 回答
21

通常使用属性来描述机制或现实世界的事物。

属性用于描述模型。

例如,一份文档(放在您的办公桌上)可能具有草稿的属性。

为文档建模的类有一个属性来指示它是否是草稿。在这种情况下,属性捕获状态。

于 2011-07-19T14:04:20.817 回答
15

这些术语的确切含义在很大程度上取决于您所谈论的语言/系统/宇宙。

例如,在 HTML/XML 中,属性是标记中带有等号和值的部分,而属性没有任何意义。

因此,我们需要有关您正在讨论的领域的更多信息。

于 2008-11-03T12:37:07.933 回答
6

在 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 对它们的实现方式进行了技术区分。

于 2008-11-03T12:36:58.963 回答
4

属性和属性有什么区别?
功能和功能有什么区别?Characteristic 和 Character 和有什么不一样?行为和行为有什么区别?

它只是上下文的变化。

对象、产品、个性、人

一个人在一种行为中行动。人格具有给定角色的特征。产品具有派生功能的特征。对象具有赋予它属性的属性。

于 2013-01-29T17:34:50.527 回答
2

在 Java(或其他语言)中,使用 Property/Attribute 取决于用法:

  • 值不经常更改时使用的属性(通常在启动时使用或用于环境变量)

  • 属性是一个元素(对象)的值(对象子),它可以经常/一直改变并且是持久的或不持久的

于 2010-05-19T13:36:24.533 回答
2

在 HTML 中,属性似乎特定于 DOM 树,而属性用于描述 DOM 元素的特征

于 2012-07-24T23:49:46.787 回答
1

Delphi 使用了属性,并且他们已经找到了进入 .NET 的方式(因为它具有相同的架构师)。

在 Delphi 中,它们通常与运行时类型信息结合使用,以便可以使用集成的属性编辑器在设计时设置属性。

属性并不总是与字段相关。它们可能是可能有副作用的功能(但当然这是非常糟糕的设计)。

于 2008-11-03T12:31:42.080 回答
1
<property attribute="attributeValue">proopertyValue</property>

将是看待它的一种方式。

在 C# 中

[Attribute]
public class Entity
{
    private int Property{get; set;};
于 2008-11-03T12:19:38.280 回答