Свойство объекта
Оригинальное название: property
Коротко
Именованное значение внутри объекта, которое описывает его состояние: название товара, цена, статус заказа. Свойство может хранить данные напрямую или вычисляться.
Что такое «Свойство объекта»
Объект в программе объединяет данные и действия над ними. Данные хранятся в свойствах, действия описываются методами. У объекта «заказ» могут быть свойства id, status, total и методы «оплатить» или «отменить». В разных языках свойства называют полями, атрибутами или членами класса, но суть одна.
В классовых языках вроде PHP набор свойств описывается в классе, и каждый созданный объект получает свои значения. В JavaScript объект — это набор пар «ключ — значение», и свойство можно добавить в любой момент.
Свойства в классе PHP
class Product
{
public function __construct(
public readonly int $id,
public string $name,
private float $price = 0.0,
) {}
}
$p = new Product(15, 'Кресло');
echo $p->name; // Кресло
$p->id = 16; // Error: свойство только для чтения
Здесь видны три важные вещи. Тип свойства (int, string) PHP проверяет при присваивании. Модификатор private закрывает доступ снаружи класса. Модификатор readonly, доступный с PHP 8.1, запрещает менять значение после инициализации.
Свойства объекта в JavaScript
const order = { id: 7, status: 'new' };
order.status = 'paid'; // запись через точку
order['total'] = 1500; // через квадратные скобки
console.log(Object.keys(order)); // ['id', 'status', 'total']
Открытое свойство или доступ через методы
Если свойство открыто, любой код может записать в него что угодно, например отрицательную цену. Поэтому значимые данные прячут и дают к ним доступ через методы: геттер читает значение, сеттер проверяет и записывает. Это одно из проявлений инкапсуляции. Для простых объектов-контейнеров без правил открытые типизированные свойства вполне допустимы и короче.
Не путайте со «свойствами» в 1С-Битрикс: там так называют дополнительные поля элементов инфоблока, которые администратор настраивает в админке. Это данные в базе, а не часть класса в коде.

