В чем разница между атрибутом и собственностью?

Это, похоже, означает одно и то же. Но какой термин более подходит в каком контексте?

Ответ 1

В общих терминах (и при обычном английском использовании) термины означают одно и то же.

В конкретном контексте HTML/Javascript термины путаются, потому что представление HTML элемента DOM имеет атрибуты (это термин, используемый в XML для пар ключ/значение, содержащихся в теге), но представленный как JavaScript объект эти атрибуты отображаются как свойства объекта.

Чтобы еще больше запутать вещи, изменения свойств обычно будут обновлять атрибуты.

Например, при изменении свойства element.href будет обновлен атрибут href для элемента, и это будет отражено в вызове element.getAttribute('href').

Однако, если вы впоследствии прочитаете это свойство, оно будет нормализовано до абсолютного URL-адреса, хотя атрибут может быть относительным URL-адресом!

Ответ 2

Эти слова существовали до того, как появилась информатика.

  • Атрибут - это качество или объект, который мы приписываем кому-то или чему-то. Например, скипетр является атрибутом власти и государственности.

  • Свойство - это качество, которое существует без атрибуции. Например, глина обладает адгезионными свойствами; или одним из свойств металлов является электропроводность. Свойства демонстрируют себя, хотя физические явления без необходимости связывают их с кем-то или чем-то. Точно так же, говоря, что у кого-то есть мужские атрибуты, самоочевидно. Фактически, вы могли бы сказать, что собственность принадлежит кому-то или чему-то.

Если быть справедливым, то в "Информатике" эти два слова, по крайней мере, по большей части, могут использоваться взаимозаменяемо, но затем программисты обычно не имеют степени в английской литературе и не очень много пишут или не заботятся о грамматических книгах:.)

Ответ 3

Часто атрибут используется для описания механизма или реальности.

Свойство используется для описания модели.

Например, документ (сидящий на вашем столе) может иметь атрибут, который является черновиком.

Класс, который моделирует документы, имеет свойство указывать, является ли это черновик. В этом случае свойство фиксирует состояние.

Ответ 4

Точный смысл этих терминов будет зависеть от того, о каком языке/системе/вселенной вы говорите.

В HTML/XML атрибут является частью тега с знаком равенства и значением, а свойство ничего не значит, например.

Итак, нам нужна дополнительная информация о том, какой домен вы обсуждаете.

Ответ 5

Атрибут - это то, что вы используете в своем HTML-теге, например

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

В этом случае тип и проверка являются атрибутами. Свойством является значение этих атрибутов, которое браузер сохраняет внутри элемента DOM. Часто значение атрибутов и свойств равно, что делает его настолько запутанным.

В этом примере элемент DOM input имеет свойство type со значением "checkbox" и свойством checked со значением true (обратите внимание, как это значение отличается от значения внутри атрибута HTML).

Используя Firebug, вы можете наблюдать за поведением свойств при нажатии на элемент и выборе "представления DOM".

Ответ 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__, которые позволяют расширить определение "атрибут".

Bottom Line - они почти синонимы. Python делает техническое различие в том, как они реализованы.

Ответ 7

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

- это один из способов взглянуть на него.

В С#

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

Ответ 8

В HTML кажется, что атрибуты специфичны для дерева DOM, а свойства используются для описания характеристик элементов DOM.

Ответ 9

Delphi использовали свойства, и они нашли свой путь в .NET(потому что он имеет тот же архитектор).

В Delphi они часто используются в сочетании с информацией типа времени выполнения, так что встроенный редактор свойств может использоваться для установки свойства в режиме разработки.

Свойства не всегда связаны с полями. Они могут быть функциями, которые могут иметь побочные эффекты (но, конечно, это очень плохой дизайн).

Ответ 10

В Java (или других языках) использование свойства/атрибута зависит от использования:

  • Свойство, используемое, когда значение не изменяется очень часто (обычно используется при запуске или для переменной среды)

  • Атрибуты - это значение (дочерний объект) элемента Element (объект), который может часто изменяться/все время и быть постоянным или не постоянным.

Ответ 11

В чем разница между атрибутом и свойством?
В чем разница между функцией и функцией? В чем разница между характеристикой и характером? В чем разница между законом и поведением?

Это просто изменение в контексте.

Объект, продукт, Личность, человек

Человек действует в поведении. Личность имеет характеристики данного персонажа. У продукта есть функция, которая выводит функциональность. Объект имел атрибуты, которые придают ему свойства.