JavaScript: Property Overview

By Xah Lee. Date: . Last updated: .

What is a Property

A property of an Object is a key and value pair, attached to the object.

2 Kinds of Properties

There are 2 kinds of properties.

Data property
This is the property used in 99% of code. e.g. {a:1, b:2}
Accessor property (aka Getter/Setter property)
Accessor property generates its value dynamically when being accessed or set. (it calls a function implicitly).

[see Getter/Setter Properties]

Property Attributes

Each JavaScript property has associated info called attribute.

The possible attributes are things like {value, writable, enumerable, configurable}, and {get, set} they specify the property value, whether it can be changed, or looped-thru via some operation.

[see Property Attributes]

Own Property and Inherited Property

A property can be said to be a object's “own property” or “inherited property”.

own property
A property of a object.
inherited property
A property of the object's parent or ancestor.

When a property is looked up (for example, x.color), JavaScript look at the object to see if it has that property, if not, it lookup its parent, and repeat, until a property is found or a parent is null. This is the technical meaning of inheritance.

[see Prototype and Inheritance]

This is the most important thing about properties. The behavior of many operations on properties, depend on whether the property is the object's own property.

Allowed Value Types for Property Key, Property Value

[see Property Key]

Accessing Property, Dot Notation vs Bracket Notation

There are 2 syntax to access a object's property: The dot notation x.b and bracket notation x["b"]. Bracket notation can be used for property string keys that contain a space, and other unusual situations.

[see Property Dot Notation / Bracket Notation]

Add / Remove Property

Property can be added or removed from object.

Accessing (Reading, Writing, Listing, Check Existence) of Property

Property value can be changed anytime (unless the Property Attribute configurable is false).

You can also check if a property exists for a object, in its parents, or list a object's own properties. See:

JavaScript Property

BUY ΣJS JavaScript in Depth