JavaScript: Property Overview

By Xah Lee. Date: . Last updated: .

A JavaScript object is a set of key/value pairs. Each pair is called a “property”. 〔►see JavaScript: What's Object?

2 Kinds of Properties

There are 2 kinds of properties.

  1. Data property → This is the property most of us are familiar with, and is the property used in 99% of code. 〔►see JavaScript: Dot Notation vs Bracket Notation for Properties
  2. Accessor property → Also known as Getter/Setter property. Accessor property generates its value dynamically when being accessed or set. (it calls a function implicitly). 〔►see JavaScript: Getter/Setter Properties

ECMAScript 2015 §ECMAScript Data Types and Values#sec-object-type

Property Attributes

Each JavaScript property has associated info called attribute. ECMAScript 2015 §ECMAScript Data Types and Values#sec-property-attributes

For Data Property, the attributes are: {value, writable, enumerable, configurable}.

For Accessor Property:

〔►see JavaScript: Property Attributes

Own Property and Inherited Property

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

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 JavaScript: Prototype and Inheritance

This is the most important thing about properties. The behavior of many operations on properties, such as {accessing, setting, deleting, “for … in” loop, checking existence, …}, depend on whether the property is the object's own property. 〔►see JavaScript: Check Property Existence

When writing to a property or deleting a property, parent object is never touched. Only when reading property, the prototype chain (parents) is looked up. 〔►see JavaScript: Read/Write to Property and Prototype Chain

Property Key Datatype, Property Value Datatype

Property key can be type string or type symbol. 〔►see JavaScript: Property Key

Property value can be any type. 〔►see JavaScript: Data Types

When a property value is a function, that property is often called a “method”.

Dot Notation and Bracket Notation of Property

There are 2 syntax to access a object's property:

〔►see JavaScript: Dot Notation vs Bracket Notation for Properties

Add / Remove Property

Property can be added or removed from object. 〔►see JavaScript: Create/Delete Property

〔►see JavaScript: Prevent Adding Property

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

Property value can be changed anytime (unless the 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:

JS Object Property Topic

  1. JavaScript: Property Overview
  2. JavaScript: Property Key
  3. JavaScript: Dot Notation vs Bracket Notation for Properties
  4. JavaScript: Create/Delete Property
  5. JavaScript: Read/Write to Property and Prototype Chain
  6. JavaScript: Check Property Existence
  7. JavaScript: Access Property, List Properties
  8. JavaScript: Property Attributes
  9. JavaScript: Getter/Setter Properties
  10. JavaScript: Property Descriptor
Like what you read? Buy JavaScript in Depth
or, buy a new keyboard, see Keyboard Reviews.